Female extension

Cornelia Sollfrank 1997 Site web http://www.artwarez.org/femext

Monument invisible au cyber-féminisme

Femal extension est de fait une archive-monument. Plus qu’une pièce web, de par son statut de trace, cette performance web réalisée en 1997 porte l’histoire du web art. Et cela même si elle n’est plus qu’un protocole de hacking artistique d’une œuvre de net.art qui fait date dans l’hacktivisme cyber-féministe.
Femal Extension vient du nom du premier concours d’œuvres pour le web : Extension. Lancé par une institution Allemande en février 1997 hacké par la féministe Cornélia Sollfranck en lutte pour un cyber-espace qui menaçait de perpétuer la domination masculine d’un monde de l’Art et des son marché.
Pionnière du web-art, Cornelia Sollfrank est connue pour deux projets : Femal Extension, et son Generator. Générateur de net.art, Generator est une “machine” qui produit du net art à partir des bases de données du web grâce à un programme qui collecte du matériel HTML et re-combine ces données sous formes d’œuvres hybrides de projets esthétiques.
Lorsque la féministe allemande entend parler du concours du musée de Hambourg (associé au Speigel et à Philips) l’occasion est trop belle. Extension propose de créer des œuvres de net.art in-extenso soit, Sollfranck imagine une performance féministe qui utiliserait le web et Extension comme matériau. Car si le monde de l'Art commence à s'intéresser au net.art, cette même année La Documenta X, présente du "net art" sans connexion internet.

Issue de l’académie des Beaux arts de Munich, Cornelia Sollfranck aborde un pan singulier des cultures numériques naissantes, celles de la notion du droit d’auteur-e, de l’auto-organisation, du genre ,et surtout du techno-féminisme. “Je considère Femal Extension comme un exemple de Cyber-féminisme, dit elle, et pas seulement dans une stratégie rhétorique, mais comme une méthode politique”.
Cornélia Sollfranck imagine alors avec humour une performance féministe de Net.art total qui noyauterait Extension comme une œuvre cachée. Elle utilise son Generator pour créer 200 profils d’artistes femmes de six nationalités avec chacune leur œuvre de Net.art et leur identité numérique propre dans leur langue. Puis elle les inscrit à Extension aidé d’un réseau de complices. Le Musée de Hambourg et ses partenaires se félicitent des 280 candidatures d’Extension dont les trois quart sont des femmes (et 200 de Cornélia). “À la clôture du concours j’avais soumis 120 méga-octets de net art à un jury constitué d’éminents professeurs, journalistes et artistes, raconte t’elle dans cette archive qu’est aujourd’hui devenue l’œuvre, mais trois prix allèrent à des artistes masculins !”
Et même après que l’artiste eut déclarée officiellement son subterfuge, personne n’a compris l’importance du geste “contributif et collaboratif machinique” que Cornélia Sollfranck mettait en place dans cette web-performance à la Dada.

Œuvre invisible, Femal Extension est à l’image des 2146 pavés du Monument invisible construit pendant 3 ans devant le château de Sarrebrück par Jochen Gerz et ses étudiants en 1993. Avec ce “monument digital invisible au féminisme”, Cornélia Sollfranck esquisse dès 1997 les bases d'une création collaborative du web à venir à travers une entité intelligente, machine apprenante, et pourquoi pas IA esthétiques, qui allait guider ses recherches.
Réflexions sur l’art féministe mais surtout sur les relations conflictuelles entre l’art des réseaux et le droit d’auteur-e par des performances qui explorent les systèmes de communication internationaux, en transférant les stratégies subversives et artistiques des Avant-gardes dans le milieu numérique. Corpus d'œuvres dont Femal Extension est la matrice.
JJG/Larevue

Cornelia Sollfrank

“Depuis le milieu des années 1990, la hackeuse et artiste Internet, conceptuelle et cyber féministe, Cornelia Sollfrank, a enquêté sur les réseaux de communication dans le monde entier, en transférant les stratégies subversives et artistiques des avant-gardes classiques dans le milieu numérique. Son intérêt particulier réside dans l’expérimentation de nouveaux modèles de paternité artistique, dans la poursuite de toute sorte d’appropriation artistique, et dans la déconstruction des mythes autour du génie et de l’originalité.
Depuis quelques années, Sollfrank apporte une contribution artistique au discours sur le droit d’auteur et la propriété intellectuelle.
En outre, beaucoup de ses œuvres incluent explicitement ou implicitement une approche spécifique du genre. En 2006, Sollfrank a commencé plusieurs séries revisitant l’art féministe où elle reprend les positions du début de ce mouvement.” artwarez.org

.................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.....................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.....................:#@@@@@@@@@@@@@@@@@@@@
.................=+*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++===......................=++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**++==-.....................-++*##@@@@@@@@@@@@@@@@
........................+#@@@@@@@@@@@@@@@@@@@@#*.......................................+#@@@@@@@@@@@@@@@@@@##*-............=##@@@@@@@@@@@@@@@@@@@@#:......................................=#@@@@@@@@@@@@
...........................#@@@@@@@@@@@@@@@@@@:.........................................:#@@@@@@@@@@@@@@#=....................+@@@@@@@@@@@@@@@@@@=..........................................#@@@@@@@@@@@
............................+@@@@@@@@@@@@@@@@+...........................................#@@@@@@@@@@@#=........................-#@@@@@@@@@@@@@@@#...........................................*@@@@@@@@@@@
.............................*@@@@@@@@@@@@@@@+..........................................+@@@@@@@@@##:...........................-#@@@@@@@@@@@@@@#..........................................-@@@@@@@@@@#-
..............................#@@@@@@@@@@@@@@#.........................................+@@@@@@@@@*...............................+@@@@@@@@@@@@@@#:........................................-#@@@@@@@@#:..
...............................#@@@@@@@@@@@@@@=.......................................*@@@@@@@#+..................................*@@@@@@@@@@@@@@+.......................................=@@@@@@@@#:....
...............................+@@@@@@@@@@@@@@*......................................#@@@@@@#*.....................................#@@@@@@@@@@@@@@......................................*@@@@@@@#:......
................................#@@@@@@@@@@@@@#....................................=#@@@@@@#.......................................+@@@@@@@@@@@@@@+...................................:#@@@@@@#-........
................................:#@@@@@@@@@@@@@*..................................*@@@@@@#-.........................................#@@@@@@@@@@@@@#..................................+@@@@@@#=..........
.................................*@@@@@@@@@@@@@@:...............................=#@@@@@#=...........................................=@@@@@@@@@@@@@@=...............................:#@@@@@#*............
.................................-@@@@@@@@@@@@@@*..............................#@@@@@@*..............................................#@@@@@@@@@@@@@#..............................*#@@@@@#:.............
..................................*@@@@@@@@@@@@@#............................+@@@@@@#................................................=@@@@@@@@@@@@@@+...........................-#@@@@@#=...............
...................................#@@@@@@@@@@@@@+.........................=@@@@@@#-..................................................#@@@@@@@@@@@@@#..........................#@@@@@@+.................
...................................*@@@@@@@@@@@@@@:......................:#@@@@@#+....................................................-@@@@@@@@@@@@@@=.......................*@@@@@@*...................
...................................-@@@@@@@@@@@@@@+.....................*@@@@@#*.......................................................#@@@@@@@@@@@@@#.....................=@@@@@@#:....................
....................................*@@@@@@@@@@@@@#...................+@@@@@@#:........................................................=@@@@@@@@@@@@@@=..................-#@@@@@#=......................
....................................:#@@@@@@@@@@@@@+................-#@@@@@@=...........................................................#@@@@@@@@@@@@@#................:#@@@@@@+........................
.....................................*@@@@@@@@@@@@@#..............:#@@@@@@+.............................................................=@@@@@@@@@@@@@@-..............*@@@@@@#:.........................
.....................................=@@@@@@@@@@@@@@+............*@@@@@@#................................................................#@@@@@@@@@@@@@#............+#@@@@@@-...........................
......................................#@@@@@@@@@@@@@#..........+@@@@@@#-.................................................................+@@@@@@@@@@@@@@=.........-#@@@@@@+.............................
......................................-#@@@@@@@@@@@@@=.......=#@@@@@#+....................................................................#@@@@@@@@@@@@@*.......:#@@@@@@*...............................
.......................................*@@@@@@@@@@@@@#.....:#@@@@@@*......................................................................+@@@@@@@@@@@@@#-.....*@@@@@@#:................................
.......................................=@@@@@@@@@@@@@@+...*@@@@@@#:........................................................................#@@@@@@@@@@@@@#...+#@@@@@#-..................................
........................................#@@@@@@@@@@@@@#.+#@@@@@#=..........................................................................+@@@@@@@@@@@@@@=-#@@@@@#*....................................
........................................-@@@@@@@@@@@@@@@@@@@@@+.............................................................................@@@@@@@@@@@@@@@@@@@@@#......................................
.........................................#@@@@@@@@@@@@@@@@@@*...............................................................................+@@@@@@@@@@@@@@@@@@#-.......................................
.........................................=@@@@@@@@@@@@@@@@#:.................................................................................#@@@@@@@@@@@@@@@#+.........................................
..........................................#@@@@@@@@@@@@@@=...................................................................................+@@@@@@@@@@@@@@*...........................................
..........................................=@@@@@@@@@@@@@@*...................................................................................:@@@@@@@@@@@@@@#...........................................
...........................................#@@@@@@@@@@@@@@:...................................................................................+@@@@@@@@@@@@@@=..........................................
...........................................+@@@@@@@@@@@@@@*....................................................................................#@@@@@@@@@@@@@#..........................................
..........................................+#@@@@@@@@@@@@@@#..................................................................................=#@@@@@@@@@@@@@@@=.........................................
........................................=#@@@@@@@@@@@@@@@@@+...............................................................................:#@@@@@@@@@@@@@@@@@#.........................................
......................................:#@@@@@@@@@@@@@@@@@@@#..............................................................................*#@@@@@@@@@@@@@@@@@@#-........................................
.....................................*@@@@@@#+@@@@@@@@@@@@@@+...........................................................................+#@@@@@#+#@@@@@@@@@@@@@#........................................
...................................*@@@@@@#-..#@@@@@@@@@@@@@#.........................................................................-#@@@@@@*..+@@@@@@@@@@@@@@=.......................................
.................................=#@@@@@#+....:#@@@@@@@@@@@@@=......................................................................:#@@@@@@#.....#@@@@@@@@@@@@@*.......................................
...............................-#@@@@@@*.......*@@@@@@@@@@@@@#.....................................................................*@@@@@@#-......=@@@@@@@@@@@@@#:......................................
..............................#@@@@@@#:........=@@@@@@@@@@@@@@=..................................................................*@@@@@@#=.........#@@@@@@@@@@@@@*......................................
............................*#@@@@@@=...........#@@@@@@@@@@@@@#................................................................=#@@@@@@*...........+@@@@@@@@@@@@@@-.....................................
..........................=#@@@@@@+.............-#@@@@@@@@@@@@#-.............................................................:#@@@@@@#:.............#@@@@@@@@@@@@@*.....................................
........................-#@@@@@@#................*@@@@@@@@@@@@@#............................................................#@@@@@@#-...............=@@@@@@@@@@@@@#.....................................
.......................#@@@@@@#:.................=@@@@@@@@@@@@@@-.........................................................+#@@@@@@+..................#@@@@@@@@@@@@@+....................................
.....................*@@@@@@#=....................#@@@@@@@@@@@@@*.......................................................=#@@@@@@*....................+@@@@@@@@@@@@@@:...................................
...................+@@@@@@@*......................-@@@@@@@@@@@@@#:....................................................:#@@@@@@#.......................@@@@@@@@@@@@@@+...................................
.................-#@@@@@@#.........................#@@@@@@@@@@@@@*...................................................*@@@@@@#-........................+@@@@@@@@@@@@@#...................................
...............:#@@@@@@#-..........................=@@@@@@@@@@@@@@-................................................+@@@@@@#+...........................#@@@@@@@@@@@@@+..................................
..............*@@@@@@@+.............................#@@@@@@@@@@@@@*..............................................+#@@@@@@#.............................+@@@@@@@@@@@@@@:.................................
............+#@@@@@@*...............................-@@@@@@@@@@@@@#-...........................................-#@@@@@@#:...............................#@@@@@@@@@@@@@*.................................
..........-#@@@@@@#:.................................#@@@@@@@@@@@@@#..........................................#@@@@@@#=.................................+@@@@@@@@@@@@@#:................................
........:#@@@@@@#-...................................=@@@@@@@@@@@@@@+.......................................*#@@@@@@*....................................#@@@@@@@@@@@@@#................................
.......*@@@@@@#+......................................#@@@@@@@@@@@@@#.....................................+#@@@@@@*......................................+@@@@@@@@@@@@@@+...............................
.....*@@@@@@@#........................................=@@@@@@@@@@@@@@*..................................=#@@@@@@#-.......................................:@@@@@@@@@@@@@@#...............................
...*#@@@@@@@=..........................................#@@@@@@@@@@@@@@=...............................=#@@@@@@@*..........................................*@@@@@@@@@@@@@@*..............................
.+@@@@@@@@*............................................*@@@@@@@@@@@@@@#.............................=#@@@@@@@#-...........................................:#@@@@@@@@@@@@@@=.............................
@@@@@@@@@+.............................................=@@@@@@@@@@@@@@@#..........................=#@@@@@@@@#..............................................#@@@@@@@@@@@@@@#:............................
@@@@@@@@#..............................................-@@@@@@@@@@@@@@@@#.......................*#@@@@@@@@@@-..............................................#@@@@@@@@@@@@@@@#-...........................
@@@@@@@@#..............................................*@@@@@@@@@@@@@@@@@#-..................-*@@@@@@@@@@@@@-.............................................-#@@@@@@@@@@@@@@@@#+..........................
@@@@@@@@@*...........................................:#@@@@@@@@@@@@@@@@@@@@#=.............:*@@@@@@@@@@@@@@@@#............................................*@@@@@@@@@@@@@@@@@@@@#*........................
@@@@@@@@@@#*=:...................................:+##@@@@@@@@@@@@@@@@@@@@@@@@@#*=:...-+##@@@@@@@@@@@@@@@@@@@@@#+-....................................=*#@@@@@@@@@@@@@@@@@@@@@@@@@##+-...................
@@@@@@@@@@@@@@@@@@-........................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+........................:#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:............
@@@@@@@@@@@@@@@@@#.........................#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.........................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.............
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
--------------===-----===-----------=--=-----=------=-----------------=-----=-=-------=-=--=----------------=---------=----------=------=+-----------------===-===---------------:----=+=---------------
----===----===-=-------==-===----=-------=--------==------------------------====------==--------------=-----=----------=+------------------------------------=----=-------====-=======+=+---------------
---=---=-==----===-----===----------------=----===-==++=----++**==----=------====-----------------======-+===---=-------+===+-----------------==---------=+=+-=---=------======-==--==-+----------------
-------==---=-------=----------------=----==-====+=+==+=+-+===========--=-=-=----====--===+=+:::--======-=++----------=-==--===-:::---------=-=--------=--++=--==-=-----------==-------:------+---------
---=--==-==-=----=--==----==--=------------=--=-=+==--+==-=------=-=-=---=---------=-=----=+=--::---------==----------=----------:::--------:=-=---=-------------=-==-------==-----==---------++=-------
---=-=---=-------------=--------=--------=------==+----+=+---=--=-===---=-----------------------:---------=--==--=-----==-=----=-----------------=--=-----------=========-------=---+=-------=::==----=+
----=-------==------:----------*+*+==-=-===-=--+=+------===-----------=-=-------------------==-------------=--+=--------------=-=---------=----------------------==-=====--------=-+=+----------------=-
===----=---=-=====-==--=-=---------==---==-----==-------+=+------------=----------------=======--::--------=-+===--------==-------=---------------------------------=-+=--------===-=-----------------=+
+*==--==-==-==+=-----------------------=------+=+--------+-------------=-----------===========-------------++------------=+--=--------===+----=----------------------+**=-------===---------------------
--=--=-=---====------------------------==------+---------+=+---------=----------=========+=+==-------------+==----------=-----=-----=--++---------------------------=-=-------======-----------------=--
-----=---------=-----------------------------+=+---------=++----------=======---==========+===--------------=-----------------==-----=------=============----------------=-----------=--------------++=-
-------------===+=---------------------------=+=----------------------====================-===-----========--=------------------=-----=---================----------=----------------------=---------+--
------------====-==-------------------------=+=-----------====------=-=========================--------==---===-------=---------------==-=====---==-----==-=+---------=--=------=--------=--------------
=-------------------------------------------+=+------------++------=--=========================------------==-==----------------+++=-----------==--=---=---+=+--------=---==-===--======--=-------------
--------------------------------*=-----------=--+===--------------=---=======+===========+======----------::---#**+-----==-=----=-=-----=---------=---=*----+--------==--=--==---==--++--===------------
-----=------------------------=**=--------====---++--------===-------========+==========+++=====------------=+-:+=-------==--------------------:--==+=------:---------=--------------=--==-=------------
-------------------------------========----++-------------==++===================================----:-----=+++-+==-==---------------------====-=----==----------------=---==-----------====------------
------------------------=-------=========--------------==========================================-------::---=::::::-==--------------=+==---==--==-----+-----------------------=----------===-----------
---------------------========--===========+=+--====--============++=-===============================---------------::-=------------+==++=--==---------=-==-----------==----+=--=-=----------==----------
-------------------========================+=================++=====-===================================--------------=------------+=-=--========-------==-===-==========-+=*---=------------=----------
------------------=======================++-=================++===-====================++==================--------------======-=====-+=---::-------=-----=-=-=--=------=====----:-----------===--------
--=====-----------========================+========*##*+================================+============================-----------------------------------==-==-----==-----=:----==----------==-=--=------
========----=-=====================================+**+=======-===========================================================-----------===============----:--=-----=-==---=-+---=----------=-----=---=----
=====-=+=+==+=+=-=======*+*+*==========+=+====================+=+======================-=====================+=+======================================--===-+=+----====-=***=-=----------===---=---=----
=============+=+=========++++===========++--==================++==============================================+======================================--==++====---====--=+++----------==---=-====-==----
===+++=-=------=+======================+=----============-==================-====--===========================-==================================-======--=-=-=-===----=======------==-=-------=-==-=---
======-========-=+=+=================-+=+==--========================+++===-=-==----==++====----=====================================++=======-------=======-=-----====--===+-:----=+++==--=-===+-=-=---
================-=+=+===================-=---===========================------==---===++======-==========================-----------=++=======--==----------=-+====-===+==+====+=+=====-----------==----
=================-==++===============+=+===--==================+++=======-----====-====================================--------------=------=====-------------:----====--=--=-==-----=---------------:-:
==================-+=+=========-=====-+=======++=========================-----===============+========================----=---=-=#*==-=====----===----------+-=++++-+-==++==+==+==+===:----=------------
=====+=============-+===============+=+-========================-==========================++=================+=+=====-==----==-=+=--------======----------------:-=-===========--==-=----------=-=-----
==================++=+===============+===========================+================+=+-========================+++-==----==-----=++---------=-===--==------------::-=+=+=========-==-==----=====----==---
==========++=========-=============+=+============--============+=+=================+=+=========================-============-==+==------==----==-----==-------------+==========-======---------=------=
====+++=================+=========+==============----============+=================--+=============-------=====-====---:-+-------------====-------=====-====-----================------==+------=-------
=========================+=======++=+============----============-==============----=-============-----------====------==--==-------=--==-=-----------====-=-+-+-===--========-==-:-----------------==--
===================-====-=+==---=+======+========----====================+=====-------===========--=---=--------=****-=---+--+---=-==+==----==-------=========+=====--========----==--------=======-=-=-
=========================--=++=+===-==++===========-=============+=+=====++====---------========---=------=-----=+==+------++=-----=++-----=----=-------==-=-:-=-====+====-+==--=--===----=------=---===
==========================--==++=--===============================+============----=++----======--===------====-=-----------=-----------------------------=====-==------==-===-==--==+=--=-----=-----===
============================-==-==================================-=============---+++-----===----=------==----+=+----------=---=----=------===-==---==-====--==---:--===+++++=+=-+=+=----------=--==---
================================================================================----=------------==--===--------+--=-=-==------------=-+**=--==-===-==--========----===-=-===-====-+=---==--------=-----
=========================--=======================================+=+===========----------------==-=-----------=-==---===---------=----=**--=-===----===***==--=--==-=---==---=====---====-=##*==---===-
-----------==============-=========================================+===========----------------=+=--------------------===-=++=-------=--=-----=---=--===+++===-===--==---==---===-===----==+***=--------
--------------============-========================================-===========---+=+-=-===-=====---------------------=--------------=#*------=====-----=++-=---------=--========---=---==-=------------
-------------------============================================================---=+=-=+=-----=-----=+==----------=-++--------=*+--===#+====----------==-=---=------------==--==------====--------------
:---:------:-----------======-----===============+*================+=+==========-----====--------------------=-----====-=====-+++-+=+--=-==---====-----=-----==+=============-------=--==---=--=--------
-=-=------===-=---------------------=============*+=*+===========================--:-===----===-------------===-+=+=-=---------===-+==------=-----=--=-----=--+=+===--=---=---------===-----------=-----
-----------:=------------------------=============================++=+==========-=+=--=----==---------------==---+=---::::-----------=-=----=-=--=--===-=------+-===-------------:==--=----------=---==-
-------==--=---------------------------============================+============-++=-=-=------==--===---------------=---==----===-=---===---------=--=--==--===-+++=---------==--=-=--==-=-===----------
----=--------=--=----=---==---------------========================-==++=========--=--=-----------=-----------=---------=------=-=------------------=====--=-==---===========-----===--=**+++----==------
=-=---=-----==---===---===-==-----------=--------------========================--::----====------------------=====-=----=--------:=---:-----------===--=-=====-=-=---==-----------++-------==---==------
===*+*+==--=------------=-----=======--==+------------------------===========--=+=+==-----==--------------------==---===-------====-==-----==-------------==--===------=-===---=-=++=-----====--------=-
----------=======------=+------=++++===-+=------------=--=-----------=++=-------=+=--=------=--===--====--======--------==-=--=-==+=-=--+--==--===-------------=-----=--==--=-----=--------=+-=-======-=
-------==-=--=-===========--=-=--------=---=====--------------===-------------------=-=---=--=++++=-===-===+=-+--+=+=-==========-+=+==--==---==-=-==-----=--------------=-------=------------==---------
-------=-==----=------------==---------=---=--==---=====------++++=----+==-=-=====-==-===-==-=-==-=---==----==---=+==--===-=---=--+-=-===------=====-------------=-----=--------------------==---=------
-----====-=-==---==-=--=-=-=---+=+----==-=---------==---------==-------++=-----++------++=--==---==+---==----------=---=-------==-------===----=----------------=-----++=----------------------==----===
---=-=--=-==--==-=====-===-----=-=----------===----=-======-------------+==--====-+**+:=---------=+-------=--------------====---------------=-------=-===---==-+=+=----+=---------=--=-------===--------
------==-=--=-=====-==------=------------======-==-=------===+=--+------+=+--==+=--------:---------===*+*--------------=--==-----------------------=-----==-----+=----------------=------------===---=-=
----=====---==-=-======---=--------------------=---=-----==---=---+=-----+==+===--=--=---------------=**+-------=--------==--------------===-------------=---===-------------=---==-----------======--=-
=--=+-==-==---==----==-==---------=--------=--------=---===---=-----+====:++++--------------------==---=-----------++-----------=+----------=------------=---=-----------------------------------------=
---==---=--------====--===-=------==------------------==-=----=------==++=-==--------------------------=----------=++=----------+=+----------------------=-----=------===-==--------------=-------------
-==--===-------==-==------=---------------------------*=++#*-------------+=------------------==--------------------==------------+------------------------==--------------------=+=-------=-------------
==---===------=-=----:--===-=-=---=--=--------=---------=++++--=------------=-----------------=--------=---=-----------==--====-------=---------------------------------------=-+=+---------------------
----=-----====-==-=---------====------------------=+=----===---------------------=-=--==--------------------------------==------------------------===---=----------=-----=-------=-===------------------
----------=---===---------------------------====--===---=-----------------=------=====-=------------=-------=--=----------------------=------------=----=--------==-----==-------:=-=--==---------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*###################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########+*#########################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########==-=##*-=##=+=#=-+#########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:+.==.#.##:==:-########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:*.**=#.##-=#=*########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+++++++++++++++++++++++===========================----------------------------------------------------------------------------------------------------===========================+++++++++++++++++++++++
++++++++++++++++++++++==========================-------------------------------------------::::::::::::::::::-------------------------------------------==========================++++++++++++++++++++++
+++++++++++++++++++++=========================--------------------------------------::::::::::::::::::::::::::::::::--------------------------------------=========================+++++++++++++++++++++
++++++++++++++++++++=========================----------------------------------::::::::::::::::::::::::::::::::::::::::::----------------------------------=========================++++++++++++++++++++
++++++++++++++++++=========================--------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------=========================++++++++++++++++++
+++++++++++++++++=========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------=========================+++++++++++++++++
+++++++++++++++++========================----------------------------::::::::::::::::::::::::::::------::::::::::::::::::::::::::::----------------------------========================+++++++++++++++++
++++++++++++++++=======================----------------------------::::::::::::::::::::--------------------------::::::::::::::::::::----------------------------=======================++++++++++++++++
+++++++++++++++=======================---------------------------::::::::::::::::::----------------------------------::::::::::::::::::---------------------------=======================+++++++++++++++
++++++++++++++=======================--------------------------::::::::::::::::------------------------------------------::::::::::::::::--------------------------=======================++++++++++++++
+++++++++++++=======================-------------------------:::::::::::::::------------------------------------------------:::::::::::::::-------------------------=======================+++++++++++++
++++++++++++=======================------------------------::::::::::::::------------------------------------------------------::::::::::::::------------------------=======================++++++++++++
++++++++++++======================------------------------:::::::::::::----------------------------------------------------------:::::::::::::------------------------======================++++++++++++
+++++++++++======================------------------------::::::::::::----------------------==================----------------------::::::::::::------------------------======================+++++++++++
++++++++++======================-----------------------:::::::::::::------------------============================------------------:::::::::::::-----------------------======================++++++++++
++++++++++=====================-----------------------::::::::::::-----------------==================================-----------------::::::::::::-----------------------=====================++++++++++
+++++++++======================----------------------::::::::::::---------------========================================---------------::::::::::::----------------------======================+++++++++
+++++++++=====================----------------------:::::::::::---------------============================================---------------:::::::::::----------------------=====================+++++++++
++++++++======================---------------------:::::::::::--------------================================================--------------:::::::::::---------------------======================++++++++
++++++++=====================----------------------::::::::::--------------=====================++++++++=====================--------------::::::::::----------------------=====================++++++++
++++++++====================----------------------::::::::::-------------=================++++++++++++++++++++=================-------------::::::::::----------------------====================++++++++
+++++++=====================---------------------::::::::::-------------===============++++++++++++++++++++++++++===============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------::::::::::------------==============++++++++++++++++++++++++++++++==============------------::::::::::---------------------=====================+++++++
+++++++====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------====================+++++++
++++++=====================---------------------:::::::::------------=============++++++++++++++++++++++++++++++++++++=============------------:::::::::---------------------=====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++**********++++++++++++++============------------::::::::::--------------------=====================++++++
++++++====================---------------------::::::::::-----------============++++++++++++****************++++++++++++============-----------::::::::::---------------------====================++++++
++++++====================---------------------:::::::::------------===========+++++++++++********************+++++++++++===========------------:::::::::---------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++*******########*******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++******############******++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****######@@######*****++++++++++===========-----------::::::::::--------------------====================++++++
+++++=====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------=====================+++++
++++++====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****##############*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++******##########******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============+++++++++++*******######*******+++++++++++============-----------::::::::::--------------------====================++++++
++++++====================---------------------:::::::::------------============+++++++++++******************+++++++++++============------------:::::::::---------------------====================++++++
++++++====================---------------------::::::::::-----------============+++++++++++++**************+++++++++++++============-----------::::::::::---------------------====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++++******++++++++++++++++============------------::::::::::--------------------=====================++++++
++++++=====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------=====================++++++
+++++++====================---------------------::::::::::-------------=============++++++++++++++++++++++++++++++++=============-------------::::::::::---------------------====================+++++++
+++++++=====================---------------------::::::::::-------------==============++++++++++++++++++++++++++++==============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------:::::::::::-------------================++++++++++++++++++++++================-------------:::::::::::---------------------=====================+++++++
++++++++=====================---------------------:::::::::::-------------===================++++++++++++++===================-------------:::::::::::---------------------=====================++++++++
++++++++=====================----------------------:::::::::::--------------================================================--------------:::::::::::----------------------=====================++++++++
+++++++++=====================----------------------:::::::::::--------------==============================================--------------:::::::::::----------------------=====================+++++++++
+++++++++=====================-----------------------:::::::::::---------------==========================================---------------:::::::::::-----------------------=====================+++++++++
++++++++++=====================-----------------------:::::::::::-----------------====================================-----------------:::::::::::-----------------------=====================++++++++++
++++++++++======================-----------------------::::::::::::------------------==============================------------------::::::::::::-----------------------======================++++++++++
+++++++++++======================-----------------------::::::::::::---------------------======================---------------------::::::::::::-----------------------======================+++++++++++
+++++++++++======================------------------------:::::::::::::-------------------------==========-------------------------:::::::::::::------------------------======================+++++++++++
++++++++++++======================-------------------------:::::::::::::--------------------------------------------------------:::::::::::::-------------------------======================++++++++++++
+++++++++++++======================-------------------------:::::::::::::::--------------------------------------------------:::::::::::::::-------------------------======================+++++++++++++
+++++++++++++=======================--------------------------:::::::::::::::----------------------------------------------:::::::::::::::--------------------------=======================+++++++++++++
++++++++++++++=======================---------------------------:::::::::::::::::--------------------------------------:::::::::::::::::---------------------------=======================++++++++++++++
+++++++++++++++========================---------------------------:::::::::::::::::::------------------------------:::::::::::::::::::---------------------------========================+++++++++++++++
++++++++++++++++========================----------------------------:::::::::::::::::::::::------------------:::::::::::::::::::::::----------------------------========================++++++++++++++++
+++++++++++++++++========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------========================+++++++++++++++++
++++++++++++++++++========================-------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------========================++++++++++++++++++
+++++++++++++++++++=========================---------------------------------::::::::::::::::::::::::::::::::::::::::::::::---------------------------------=========================+++++++++++++++++++
++++++++++++++++++++==========================-----------------------------------::::::::::::::::::::::::::::::::::::::-----------------------------------==========================++++++++++++++++++++
+++++++++++++++++++++==========================---------------------------------------::::::::::::::::::::::::::::---------------------------------------==========================+++++++++++++++++++++
++++++++++++++++++++++===========================------------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++
++++++++++++++++++++++++===========================--------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++++
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
******************************************...***********************************+..+**************************************..=******************************..:******************************************
******************************************...*********************+*******++****+..+*+*************+****+*****************..=*+*******++*********+*********..:****+*************************************
******************************************...*****..:*+..-*=..*:......*+......-*+.......+*****=...........:*...**-..******.......+*=......+*.......:**:......:*-......**********************************
******************************************...*****+..+....+..-**+*+-..+=...-+***+..=**..-*****=..+*-..+*-..*+..+*..=******..-**..:**+**=..-*...**-..*-..***..:*...:=+***********************************
******************************************...******:....-....**...::..+*+:.....*+..+**..-*****=..+*-..**-..**:..:..*******..=**..:*:...-..-*...**-..*:..***..:**=.....=*********************************
******************************************...*******...=+...=*+..-+...+-..=+-..*+..+**..-*****=..+*-..**-..***....+*******..=**..:*..:+-..-*...**-..*+...=:..:*..:++..:*********************************
******************************************-:=*******+:-**=:-***+...+-:+*+-...=**+::***-:+*****+::**+:-**+:-***+..=********::+**-:=**-..==:-*=:=**+:-***-..==:=**=...:+**********************************
************************************************************************************************************=....***************************************************************************************
************************************************************************************************************+==*****************************************************************************************
********************************************************************************************************************************************************************************************************
***********************************************************************************************************++*******************************************************************************************
**********************************************************************************************************=..*******************************************************************************************
**************************************************************=...+**:.+***:.+*+:..-***-.=..:.:***+.:*****=..=..:+***+:..:+**+..***:.+*-.=:.-***********************************************************
************************************************************+...=...*:..**:..*-..--..+*.....+..-**..-*****=...=...+*...::...*+..+**..=*.....=***********************************************************
************************************************************-.......+*..:=..+*........*...***+..+:..******=..**+..++..+**+..=+..+**..=*...**************************************************************
************************************************************=..+*+=+**+....=**..:**=++*..:****-....+******=..**+..++..=**=..++..+*+..=*...**************************************************************
*************************************************************:.....-***=...***+......+*..:*****...-*******=..**+..+*=......=**.......=*...**+..+********************************************************
***********************************************************************************************...******************************************************************************************************
*********************************************************************************************....*******************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
++==++=-++===-==========+++++===++++++++++*****************************+++***+++++++++***+********++++++++++***+++++++++++++++====::..:====-::-==+++++====-::................................:---:::::::
+=====-=+===--=====+++++++++++++++++++++++++**************************++++***+++++++++++==+*+*++****++++++++====+++++++++++=++===+=::..-===-:-:=++++++=====-::.................................:::-:::::
======-=====-=======+++++++++++++++++++++++++************************+++++***+*+++++=++++*++=-.:--=-:.==++++=-==--==+++++++=++===+=-::..==--::::=++++++=====-:....................................::::::
=====-====------=====+=++++++==++++++++++++++**********************+++++++***+++++*+*+*+++..::..:............=.:=:=---=+==++++=====---..-----:-::=+++++++====...::::.................................:::
==-==--==----==-:==:++:++++++=++++++++++++++++*********************++++++***+++++**++++=:...:.........................:-+====++=====--..:---=---:-=++++++====..--::::...................................
=--=-:===--:---=:=+.**.:.:--==++++++=+++++++++*********************++++++***+*+***+=-::..=*:-=:....:......................:.::=+=====-:..--=====---=++++=+=+...-----::..................................
=--=--===--:.--............:..-=++++++++++++++*********************+++++********+==-=++****+===-.....:--.:==-:...............-=++-===-:..:-==+==-:-===++==+...===-----:.................................
=--=------...........-:......::.-=+++++++++++**********************+++++******+==++*********+======-=---:=++++=:..........-==++=+====--..:==++===---=-=+++-..-=====----:................................
----:---.................-::=+==-:.-=+++++++++*********************+++*******++**************+=-------:-+***+++=.........:--==++++====-:..-++++==---=-:=+=...=======---:::..............................
----:..................:----++++++**===+++*************************+++******+++++++++==+********+++==++***+=:...:....::.===++++++++-=---:.-++++===--==-:-...=+=========--::::..:........................
---=.........:-....::.:--:-+**+****+++++***************************+++*******************+-+-+=.++-:.:---:.......==++++++++++++++++=-----:-++++===---=-....-++++========--::....:.......................
==--......:-==+=:...:::::=+++++=+++===++*************************************************++=-=-++==...:.----=--:.+++++++++**+++++++==-=--=-=++++===-===....-++++=========--::....:......................
=--:.......-==+++===-==+=::::==+++++++*******************************************+******++++=+*+=++-:+==+++++*++=+**********++++++=========-++++======....---=++==========---:..........................
--............:::.:...:.==:.+++++++++++******************************************+++*******++*****++************+***********+++=-::........-*+:.:====....:==--==+===--=====--:-:........................
-=-..:--.......-:--:..:-=+=-=++++++++++********************************************+**++*********+***********+++=-:.........................:=.....==.....:-=--=======-=====--::::..::..................
==---======::===--++=-==+++++++++++++++***********************************************+++===--::....................................:----===--==-..-:.....:-==-========--====--:...::::.................
=====+++++++=++++++++++++++++++++++++*********************************************+=:..............................:::::----================------........-=--=========---====--:...::::................
===++++++++++++++++++++++++++++++++**************************************+:=#***...........:::-----======++++++++++++++++++++=====++++=======-==-.......+--=----========---====--::.:.:::...............
------::::.....................-**-==+********=...-********************#.....+:...-++**************************++++++++++++++++++++++++=====--==....:-=+====---========----=====--:.:..:::..............
...............................:*#:..==.:=***=..=..==******************..=#....:**************************************+++++++++++++++++====-:..=+++==-======-----=======-----===---::.::::..............
:::::::::::--:-:---------=======+===-:......:..***+.=.#***************..=**...:+************************************+*++++++++=======++-..-=::=++=====-=+====-----=====-=----------::::::::.............
================================++++++++==:...:=****:.::************-..+***=:.:*+***********************************+++++++=====-::.:-=++===-:-=+++===---=+===------===--=---::-----:::::::.............
===================++++++++++++++++++++++++++-.=******:....-++++=:...=*+++****+:-+*********************************+++++==-::.:---===++++++==:-========---=++===----====--=--:::::--::::::::............
+++++++++++++++++++++++++++++++++++++++++*+-..=**+*******=.......:+*++++++++++++++++++=======+++*********+++==--::::::------======++++++++++=-============-=+==-=----====--=-:::::::-:::::::............
=====++++++++++++++++======+++++=--:...:-=+**+++++++**********+*+++++=================---------::::::::::::--------==========++++++++++++++==--=+======-:---=+===-----===-:----:::::::::::::............
...........::::::::...........:-=+**++++++++++++++++++++++++++++++=======--------------------------------=======++++++++++++++++++++++++++++=--========-:-::-=====-::-====------::::::::::::............
-::::::::::::::::::::.::::::---===+++++++++++++++++++++++++++=======------------------------=========++++++++++++++++++++++++++*++++++++++++=--========---::--====-::-=====------::::::::::::...........
======-------------:-----------===+++++++++++=++++++++++=============-----------===========++++++++++++++++++++++++++++++++*****++++++++++++=:-=====-==---:::--=+==-::-======-----::::::.::::...........
=====================--------======+++++=============================-=----=--===++++++++++++++++******+*+++++++++++++++********++++++++++++=:=+=====-----:--:--=+=-:.:-=====------:::::................
================================================================================++++++++********************++*+++++**********++*+++++++++++=-=+=====-----:------====:::-=======----:::::::.............
==+++++++++++++====================================================+=++++=====++++*********************+*********************+++++++++++++++--+++====----------:-=====----=======-----::::::............
++++++++++++++++============================================+++++++++++++++++++++****************************************+***++++++++++++++=-=+++====-------------=====--====-====-----:::::............
+++++++++++++++========================================++++++++++++++++++++++++++*********************************************+++++++++++++==+++++==--:-----===---===--=--====-==-------::..............
+++++++++++++++++==+==============================++++++++++++++++++++++==++++++++********************************************++++++++++++=-=+++++===-::---====----==---======--==-------::.............
+++++++++++++++++++++++++========================++++++++++++++++====-====++++++++********************************************++++++++++++=-=+++++===-::--=====-----=-:---====------------::............
++++++++++++++++++++++++======================-=++++++++++++++++==:....:=++++++++********************************************+++++++++++++==++++++===--:--=====-------::--=====----------::::...........
++++++++++++++++++++++++++++====++++++=+++===....=+++++++++++++=-==:.:===+++++++*******************************************+++++++++++++++==++++++===--:--=======----=---======----------:::::..........
+++++++++++++++++++++++++++++++++++++++++++++++==+++++++++++++=+++++=++*++++++++**********************+--++***************+++++++++++++++===++++++===-----=======-----==========----------:::::.........
++++++++++++++++++++++++++++++++++++++++++++++*********++++++++++*+++++++++=++**********************=:....=+++++****++****+**++*+++++++++==+++++++====----========--=-======----=--------::::::.........
++++++++++++++++++++++++++++++++++++++++++++++********************+++++++++***********************+=-::-....++++++**+++++++++++++**++++++=++++++++=--=---=========--=-======----==--------:::::::.....:.
+++++++++++++++++++++++++++++++++++++++++*************************+++*+++************************=:......+:...:++++++++++++++******+++++++++++++++=--=---===================---===---:--::::::.::.....::
++++++++++++++++++++++++++++++++++++++********************************************************+=--::.......+=...+++++=-.:++++*****++++++++++++++++=--==-===+======================---::-:::::::::::.::::
+++++++++++++++++++++++++++++++++++++********************************************************+=---:::.:--...=+...=-:..-+=+++****+++++++++++++++++=-:-=====+=======================------::::::::::::::::
+++++++++++++++++++++++++++++++++++*********************************************************++=---:::::-=+...::....==-==+++++++++++++++++++++++++=-:---===++====================-------:::::::::::::::::
+++++++++++++++++++++++++++++++++++********************************************************++==---:..:--:........-===++++++++++++++++++++++++++++=::---=========================-------:::::::::::::::::
++++++++++++++++++++++++++++++++++********************************************************+++=----............:=-===++++++++-..:=++++++++++++++++=::--===++====================---------::::::::::::::::
+++++++++++++++++++++++++++++++*********************************************************++++==---:...........+===+======+++:+-...-=:++++++++++++=-::--===++==========+========----------::::::::::::::::
++++++++++++++++++++++++++++++++*****************************************************++++====----...........=+==+=====+++==..-....=+++++++++++++=-:-=====+====================----------::::::::::::::::
++++++++++++++++++++++++++++++++**************++******+***+**********************+++++======----::............:==-====++=+++=...-++++++++++++++=-:--===++++================-==-----------:::::-:::::::::
++++++++++++++++++++++++++++++*++++****+++++++++++++++++=+++====+++*++*******++++++=======------::.............----==+=====++==++++++++++++++++=----==+++++===============---=----------::--::--::::::::
++++++++++++++++++++++++++++++*++++++++++++++++++=======---------===+++++++++++++=====-----------:............:---=+==+====++++*******++++++++=----==++++++======++======-::-==------------:-----:::::::
+++++++++++++++++*++++++++++++++++++++++++++======-=-------:::::---:-----===========------------:::...........=---=======+++++++********+++++==--:-==++++++============---:-===-------------------::::::
++++++++++++++++++++++++++++++++++++++++==--:--=----:::...::...:--:::::..:::---------------------::............:-----=====+++++********+++++===---==++++++======+==+==-------==--------:-------:::::::::
+++++++++++++++++++++++++++++++++++++==-:..........................................:-------------.................===....--=-=++++***+++++++==---==+++++++=====+++====--:---===--------::------:::::::::
++++++++++++++++++++++++++++++++++=---:...............:.:----........................:-------------:......::.....-==++=.........:+++++++++++==--====++++++====+++=====-:--=====-------:::----:::::::::::
+++++++++++++++++++++++++++++++++=-::...........-=======+++==----:::....:...............:--------------:-:::.....---=----::....+++++++++++++==-=====+++++======+=====--:--======-------::----:::::::::::
+++++++++++++++++++++++++++++++=-.........................................................------------------:....-----=====+++++*++++++++++==--=====+++======+=======-:--====---------::----:::::::::::-
+++++++++++++++++++++++++++++==-....................::::.:.:::-----::::::.................--=========-------....:=++++++++++++++++++++++++==--======++==============----===-----------:-----::::::::::::
=++++++++++++++++++++++++++++++=--................:..::::....::::-:.:...................::-===================++++++++++++++++++++++++++===----====================----==----------:-------::::.::::::::
=++++++++++++++++++++++++++++++++++=-:..........:::.::::.....:.:::::...............::-=====+++++++++++++++++++++++++++++++++++++++++++=====----==+================----==------------------:::...::::::::
-=+++++++++++++++++++++++++++++++++++++=-::...:----:-----.::::-------:::::::.:---====+++++++++++++++++++++++++++++++++++++++++++++++++====----=====+==============--==-==----------------:........::::::
:=++++++++++++++++++++++++++++++++++++++++==+====+=====--=-===--===-=-=-=========++++++++++++++++++++++++++++++++++++++++++++++++++++=====--=====================---==-==---------------:.........::::::
.-==++++++++++++++++++++++++++++++++++++++++++++++===---::::::::---===========+++++++++++++++++++++++++++++++++++++++++++++++++++++++====--=====================----=--=---------------:..........::::::
.:-==+++++++++++++++++++++++++++++++++++++++++++++================+++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====-=====================---=-------------------:............:::::
#######**#**+++=+*#*+===========++##****#+----+***++=--=*******+++==********************************+++********+++==============+==========------=======+++++++++++++++++++===-----=++*#################
#######***##****+===++========+++**#+++#=---=****++=:+**++****=====+*******************************+********+++++**#*+=-:......................:::---=======-------===+++++++++++++++==---==+**#########
########**+*+++===++=======--=++*#**++-::::-+++++=-..-*###**+=+====+*+++==--::.........:-+**********#*****++++**#+..............................................::-====-------==++++++++++++==----=+*###
#########*###**************+++**++*+:----:-====-::...:=+++***+=====-.....................-***************+++***.............................................................:-===-----===++++++++++===--
########***#*+**#**#****++*+***+++==:----=+++=-:-...:---=====+++===-.....................-***************+***:......................................................................:---------==++++++++
#######*****=+===+****++++****=+==+=:---=+*++=::==------------=++=--.....................+*********#****+***.....................................:::.......................................:-==-----==++
#**#####*==+++==+*+++**#*+=-===+++++=-=+***+=:-***++------------=++=.::::::::::.........:*******###*#*****+...................................:::.................................................:-=--:
#########++*+=+==+++++***+++==++****+##***+=--####**+:......::---=+=.::....::...........+*******#*********............................................:........................:........................
########*++++++--=++++*#***++=+++***+*+**+==-***+++==-.........-====.::...:....::......-#*******#********::..................................................................:....:-::=-:...............
#########*+++++=---===+*###**+====+##**+===-=+++++++==......::::-==-............:.....:********##********.:....:..............................................................::..............::........
#**#######*++++*+--++++******+======+*+===-=+++++++=-.:-:--::::--==-....:.:::.:.......=***********#*****=:.....:.........................................................::.....:...................::..
###########******=--+====++++**+***+++===-=*++=:.....:.-=--::..:===-..::::::::::.....:*****************#-:....::.................................................:.:::..:::.................::--:.......
###########*******+:--====++******++*+*++#=...:....-==--::.....-==+=::::::::::::.....+*********#**#*****::....-:......................................................::----...:--.:::.::::::::--:-...::
-----------------========--:..--:....:::::::::::-========-:--:::---::::::::----.....-*************#*****::....=:...................................................:------:..:---:::::--:::--===.::--:.:
-----------------=+++===--:..--:....:::::::::...:======--::--.:::--:::::::::::-.....********************::....=:..................................................::.:-----.:==---=:.::---==-::..:.:---:
-----------------======--...::::.::::...:--:::::--====-:::::..::---:::------:-.....=********************.:....=:....................................................:-==-:.:----==:.....:-======-:------
=---------:::-:-======--:....::---:..........:::::-=--:::::..:::--:::====---:.....:*********************.:....=-.::....................:::........................:....::....--=-.............:-========
--=====:-::::::========:-==-------:.......::::...-+--:::::..:::::::-=======-:.....+********************+.:....=-.:::........:..:...::::...........................::....-=:.--=......:-:-..-:-===---=-::
.:--====-::::::=========-----::--:::............::=+-:::::..:::::-:-======--.....:*********************+.:....=-.:::::======-::::.................................::-...:-=:=-...:-=---:=::.===-=+++++==
.:::--====::::--========--:::-::::...:..........::-=+::::...::::---:-------:.....+*********************+.:....+-..:::--========--:................................:::-..:==:.-..::-==-=::..-==-++++-:--=
.:::::--===::.-========--::::::::..:::...........::-+=:::...:::----::-----:.....-**********************=.:...:+-.::.....::-=======-......:........................:----.:===-...:...-++=*..-:=+++-..:=++
.:::::::----..-=========--:::::...::::...........:::-=-:....::-----::-----:.....+**********************=.:...:+=...-====--..:-======:................................................-++=++--=++:....:::
.::::-:::---::========---::::....::::.....::......:::-=:...:::-----:::----.....-***********************=.:...:+=..:--====++++::-=====-............................::-:.....:::.......:=+==+++++--...:.-+
:.....-::::::--=====------::.:::::::......:::.....::--=+-..:::-----:::::::.....************************=.:...:+-......:--=+++++-:=====-...........................-=====:...:-:...:...-+==+=++-..**+*+*+
:.....:=-::::--==-=====----:::::::::.....::.:....:::---==:.:::------:::::.....-************************=.:...:+=----.....:-==++++-==++=-..........................-------:..---...:...-===+=++=----=::==
:.:::.::=-:.:-=======-----:::---::::...:::::::..::::----==.:::-----:.:::......*************************=.:...:+=:=:........:-=++++-=++==:.........................===----.::-=:=.....:-======::-..::--=+
::::::-::-+::-=-===-------::-------:..::::::::..::::-----=:.::----=-..::.....=*************************+.:....+=.........:--::-====.=+++-.........................-:::...:.---=:-=..::::--==::....:-::==
:-::::==::-++=====--------::-------:.:::::::::..:::------=-.::---====-.......*+************************+......+=..........-==-.----.:-===.................................:-=-=:---...:--===++++++=--=++
--::::-==:::=++======----::--------:.::---:-::..::---------.::---=====-.....=***************************......+=...:::.....:=-..::....---................................::--:-.::=....::::::-:--=++*+==
:-:::--==-:::-+*+=-==---::---------:.:------::..::---------=--::-=====......****************************......++...:--:..........--.....................................:::..:-.::-.......::::::::--=+*-
::-::--===:-=--+++++=-=-::---------::--------:..::--------==--:::-=-:......=**++*******************+****:.....==-+:=++=-...............................................:::...::.---........::..::::::-=+
-=-------=:--=--++++===-==-----=++*-:--------:.::----------==-..::=-.......++++++++++**************++***-.....-==-:++=+++=.................................................:::..::-=:..--.:--:-::....:-=
+=--------:---=--+*+*++++=+=--+******--------:.::--==--=-===:..::==-......=++++++++++++************++***=.....-=-:=++++++==+:.........:....................................---+-..:-:...::::.....::...-=
+==-------::-----=+*****+*+++++++****+-------:.-=+========-:..:::---.....:*++++++++++++***********+++***+.....:=-:.:::=======:......::..................................--:.:--===---...:::--:.........:
======---:.:------=****+**+*++++++++++=--============+==:--::::::--:.....++++++++++++++*******+***++++**+......=-.-+=+-.:--==--=++=-.....................................:---::--==+-......-----:.....::
=====----:.::-::::-+****+++++++=++++++===+++=====++===:--:::::::---:....=++++++++++++++**+*++++*+++++++++......=-...=+++=:--==-==-:.-......................................:---::---=+......:----:......
===------:.::::::::-****++=+++++++=+++==+++++++++++=---::::::::::--:...=++++++++++++++++++*++++++++++++++:.....-=....-===::===-:.::--........................................---:.:---=--=+==++-=-..-===
===------:..:::::-::=***++=+++++++++++-=++++++++=-::::::-:::::-::--:..++++++++========+++++++++++++==++++-.....:=....:-==-.====-.+==:..........................................---:.----:-+=++=++=-----:
==-------:..::::-:::-++*+==++++++++++=-=++++*+--:-:::::-:::----=----+++++++===========+++++++++++++==+++++......=....:-==-:=+==-=++=:.....................................::----:.:====-:==+--+++===-:--
==-------:..::--------+++=+**++++++++-=++*+=::::::-:::-:--------=:-=+++++=============++++++++++++++=++++*:.....-:..:--==-:=++=-=++-:.....................................-:::-==-=++=:=-=+=+=---+=--===
==--------..::--------=++=+**+++++++=+**=--::::----::--------------=*++++=============+++++++++*+++++++***=.....:-::-====--++++-=++--:...........:........................:====::+++--==...:..+++=======
==--------...:----==---++=+**++++++=++=-::::-------::--------------=*******++++=+==++++*+**+++**+*+++*****+......-:-=====-=+*++-=+=--......................................---=-=++-===--------==++=++==
====------...:---====---+=+***+*+++=--:::::-------:::--------------=++++++*********++++********************......-:-====-==+*+==++=-*.............:........................:..::-=:-============++==++=-
=====-----...:----===----++**+*++=--:::::---==----:.---------------=*+++++++++**+***##*###*****************=.....:--:..--===*=-+++-+*=........:...:........................-=:====++++++===-.-+++=-+++=-
===-------....:---===----=++***=---:..::---===---:.:-------------:-=*+*******************#****#*********###*......:.:.-:====-=+++++*+-..........::--:.......................+=:------:--:==+==++=-:+++=-
==-==--=--:...:---===----=+**+----:...:---=====--:.----==--------::-******************#**#****#********#####:.......:::-=====++++**++=..........:::-::......................=++-:==-===:---=-::--+==+++=
==--++---=....:----==-----++=-----...:---==+====-..---====------:::=*********************##***#*********####=.........-:-++++****+++=..........::::--:.........................+:-.-.-+===-=====-==-+++=
=-=-=-++=-....:---==--===-==-----::..--==+++====:.:======------:::=+********************##****#**********##**........:-=-==+****++=:....:::...::::::-:.......................--:--=====-====+==-===---==
=======-=-.....---==-=========---::.-===++++===-..======---=---::-=+**************************#***********##*:......:-:-+---=+==-==-:.....::--::::::::.......................--=========+++=---====+=-:=
=========-.....------==========-::.:====+++====:.:=====--=----::-==++++***********************#************#*=......:=.==***=======*:.......:-=::::::-:......................:======++++==--+++++====--=
==++======.....:----===+======-::::-=++++++====..=====--==-=:-::===++++++***********************************#+......---:=+++++===+**:........::-:::::::.....................:=--==+=======:+==+++++++-..
==++++++==:.....::--==+++====-:::::==+++++++==-.:=====-=------:-==+++++++++++++*******************+=*********#......:==+======--+*++:.........::::::::-...................::.::.-----====+++***+++=-:.:=
==+++++++=-......::==++++====-::::-=++++++++==..=+++++=-==---::===++=++++++++++*+*****************+=*********#-.....-+=+++=-++==++=--..........:::::::::...............--===-::::==-=++++++*+++=-:--:::-
==+++++++=-.......-+++++++=--:::::-=++++++++=-.-++++++++===--.-==+++===++++++++++*****************+=**********=.....:*+=++**+::+==+++..........:::::::::.............-====-----=+:===========-:-===---::
==++++++++=......:+++++++==-:...::==++****++=:.++++++++++===::===+++====+++++++++***************+++=*+********+......***-++**+++**++=...........:.::::::............=========+====:.:-=++++-=-=-===-==-=
===+++++++=......=++++++=---....::==++****++=.-++++++++++==-.-===+++=====++++++++***************+*+*+++********......+***-:+*+-+++=.:...........:..::::::.......=+*+++=+==+++==+=+-=-++++=-+-=====-=+--=
===++++++++:....:++++++=---......-=+++***+++=:+++++++++++==.:-===+++======+++++++*********+*****++**+++********......=****+-::.:.:-==..............::::::......:-=-++++++++++-====--=++*=-=+++-==-===+++
===+++++++=-....-++++++-=-:......-==++****++==++++++*++++=-:-====+++======+++++++********++*****++**+++********......:++***+=--=-====:...............:.::........::=++++++=--===++====++*+==+*+=--=-:-=+
====+++++++=....=++++++--:.......:==++****++-++++++*+++++=.:-====+++======+++++++********+++****+***++*********:.....:+=+****=.:====-:..................:.........:..--::=*++=---:=++==++**+=+++=-=:-+**
-===++++++++....=+++++=-:........:==++***++==++++++++++++:.:-====+++=====++++++++********+++****+******+*******-......*+++****----::--..................::.........::--:.=:+++=--::+++++++++++++==+****+
.-==++++++++....=====-:...........===++*+++-++++++++++++=..:-=====++====+++++++++********++*****+++===+********-......+**=+*+++++=====..................::.......-====++==-:----=-::++++***++*+++****+==
.--==+++++++:...=-==-:............-===++++=-++++***+++++:..::-=-==++==+++++++++++*********+***===+*++**********=......-***+===:=++====...................:....:=...--=+=+++++=-+==--:-+++++***++**++--+*
..--=+++++++:.....:................---=++=.=+++++***+++=....::---==+=++++++++++++**************+*+---+*********+.......-++:+=-=++++++=-..................:....=++...-+*+-=+***++++-=.:-===+++=++==--+=++
..:--=++++++:...........................:..+++++***+++=:.....::::-====+++++++++++********+++****+:---=+********+........-=+=-=---=====+-.................:...:=+*=++=+**+--=+**++++=*****+:::---++==-.:-
=======================-===================+=============================***+++++*****+--:***********++-+==+++++++++++++++++++++++=+=+++++=-::::::-=-::------::::::::::::::::::==--==================-==
=....=======---======-=+-==================--============================***=--=+*****+--:+*********+++=====++++++++++++++++++++++++++===+++++==-:::::-===========================-=====================
=::::======-::-======---=======---========---===========================+*************+--:+*********+++=+++++===++++++++++++++++++++++++++++=++++++=-::--::=+++=++++++++++++++++++-===============-====-
++++++==++++=++++====++++====++++++++=++==+=++==========================+***++++=*****++++=*********+++=+++++++==+===++=++++++++++++++++++++++++++++++++=--=+==+++++++++++++++++++===========+===---==--
========================================================================+*****************************+=++++++++++++++=======++++=++++++++++++++++++++++++++=+++++++++++++++++++++++++++++++++++-===----
===-========+========-::-=======-===================-===================+******=+*********************+=+++++++++++++++++++=-=+=-+++++++++++=+++++++++++++===================================+==--------
===-=======+=--======:=::=======*+=======----======-+===============----=*****+*+*****++=-+***********+=++++++=++++++++++=++++++======++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-==-----
===-========--======================================================:---=****++=**********************+========+==========++++++++++=======+++=-=+++++++=======++++++++==++=++++++++++++++++++++:=------
=============+===============-::::---------------------------------++++++***+++*=*****=++++***********+===================-===============-++==--+++++++++++++++++++++++++++++++++++++++++++++++-=++====
=============================-:------------------------------------+++===****************************++:::::::::::-=-=-==-=================++=====++++++++++++++++++++++++++++++++++++++++++++++:===----
===-=======....======--======+++=----::::::------------------------++++=+*************+=+=+***********+++++++++++++++++++==================+++++++++++++++++++++++++++++++++++++++++++++++++++++=++=====
==+========:...======--+=====++=+------------------================+++++++================+++++++++++++=+++++++++++++++++==================++++++++++++++++++++++++++=++++++++++=+++++++++++++++=++====-
=========+===================++=+++=-=-=---------------------------+++++++++++++++++++++++++++++++++++=+**************=====================++++++++++++++++++++++++++=*+++++++++=+++++++++++++++=++=+===
=============================+++++=+===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================================--==-===
=============================+++++=++++-====--------------------===+++***=--==*****+++=+***************=++==*****+:--****+=====================+======++=++===========================================+=
=======================-=====++++++++=++++=-----=====================+***-----*****=---+******==*******+==-+*****=---+***+=====================+++=++===+====++++++++++++++++++++++++++++++++++++++++=++
============--========:-=====+++++++++++++----=--------=-::::::------=****************+*****************++*********++****+=====================++++++++*+****++***+++**+*************************==+==++
=++++=====++++++====+++++====+++++++++++=++++=::::-----=::::::::::::-=***+*+*+****+****+********+++*****+=*+*+****++*+***======================++======++++++++++++++++++++++++++++++++++++++++++=====++
=============================+++++++++++++++=----------=+++=++++++++++***************************************************+=====================++*****+******+---*********++************************+=++
=:+*========-========--=-=======+++++++++++==+++=------=++-=--++++++++***-+=-=*****==-=******+-+=+******+-+******=-:--***======================++**=---=*****+---+*******+*+******====*****+:---****+=++
=.=:=======---:======----======-+++++++++++++++=+------=++::--++++++++***-====*****----+*****--+++*****+-=+******+=-:-***======================++************+:::+******++++*************************=--
=:==========---========-===========++++++++++++=++++-=-=++++++++++++++****+++*****************++*+*******++******+++*****+=====================++**++++=*****++++=*****++++=*****+==+=*****=+++=****++**
++++++=======+=========+=+=========+++++++++++++++=+===+++++++++++++++*****+*+*******+********++**+**++*++*+++**+++++++**+=====================++***************************************************+=++
=================================+=+==++++++++++++=+++==++++++++++++++******************************=+=------::::::::::::::*+=-==--============++**+-=-+******++++*******==+*****+=+++******--:+*****+**
=-==-======--:========---================++++++++++++=+====-=========+***+---+-=---::::::::::::::::::::::::::++-=-==-=============-============+***+---+******===+******===+******==++******-===*****+==
====+======::::======-=-=======--========+++++++++++++=+++-====-----==***----+--:::::::::::::::::::::::::::::::-::---+++++++++++++-============+***+===+******===+******===+******===+******---+*****+=-
==========================================-==+++++++++++=++++=----===+******+++=-=+--=+=-==+++++++++++++++++++++++++=*********+=++-============+***+++++*****++++=*****++++=*****++++=*****++++=****++++
=============================================++++++++++++++++========+********+++++++***************************++++=+++++++*++==+-============+****************************************************++++
================================================++++:---:::::::------=********++++==+***++**********************+==+=*************-============+***+*+++*****+==-+*****+---=************************++**
=:+========:+-+======++========+**========-=-===++++++++++++++++++++++********+*************************************=+*********++*-============+***++=*+*****+=+++*****:::::************************+=::
==--=======:==+=========+========+=========-=======+++==-+++++++++++++********+**+++=-******=+==+*****++===*********=+**********+*-============+***++++*******=++************************************:::
+=+=++===+=+=++=+====++=+=+=====+=+=+==++++========++==-=-++++++++++++********+**+===-******====+*****=====*******+*-++=**********-============+***+*+*+*******+*=*******+++*************************+**
++=++++===++=++====================================+++=--+++++++++++++********+**************************+********+*=*************-============+****************************************************++**
===================================================++++++++++++++++++=********+**********************************++*-+************-============+****************************************************++**
===================================================+++++++++++++++++==********+**********************************++*=+************-============+****************************************************++**
===============================+---::-----:::---:::::::-=-==-=-=++++:=********+**+====+*****=+==+*****=++==******++*=+************-============+****************************************************++**
===============================+--:--::::::::::::::::::--:---=-====--=********+**+===-+****+===-+*****===-+******++*=+++++++++++++-============+****************************************************++**
===============================++=+++=+++++++++++++++++++++++++-+==-===++++++++*************************+********++*=+++++++++++++-============+****************************************************++**
===============================++++++++++++++++++++++++++++++++=++--:++++++++++**********************************++*=++++======================+****************************************************++**
===============================++=++=++*++*****************===+--=--=+========+**********************************++*-===-======================+*****************************************************=++
===============================++======++++++++++++++++++++====-=:--+++++++++++***====+*****====+*****====+******+++-+++=======================++****************************************************-==
================================+**+++++******+++++************==--=+++++++++++***----+****+----+****+----+******+++-==========================++***************************************************+-==
================================+**++++=+*****==+==***********+=:--++++++++++++**+++++*****+++*******+++=+********++-==========================++***************************************************+=++
================================+***=+++******++++************+--:++--===++++++************************************+-==========================++***************************************************+=++
================================+***+++=*******++*************+:-=+++==-+++++++***++********++********++***********+-==========================++***************************************************+-==
================================+*****************************+=+++++++++++++++***=====*****====+*****==+=+********+-==========================++****************************************************===
================================+***++*+******++*+************+++++++++++++++++***----+*****----*****+----*********+-==========================++***************************************************+=+=
================================+***=++=+*****=++==***********+================****++*******++==******++=+*********+===========================++================+++++++++++++++++++++++++++++++++++++++
================================+***====******====************+===============+************************************+===========================++++++++++++++++++++++++++++++=++++++++++++++++++++++=+++
================================+**===+=+*****+=+*************+=====:---------=***+++++*****=-==******:::=*********+:==-=======================---+---------------:-+-::--:-++++++=+++++++++++***+*+=***
================================+*****************************=====+-=========+***+++==*****=--=******---=*********=-==============================--============--::::-=+++++=+++++++++++++++****==+***
================================+***++++******====************=====++++==++++++***++++******====******---=*********==+++=====================+=:::-++==++++++=:::::-=+++++==++++++++++++++++++***+++=***
================================+***=++=+*****=---************=====++-==+=+++++****++*****+=****+****************++=++++===================+-:::=++++++-+=:-:::-++++++=++++++++++++++++++++++++++++++++*
================================+***++++******+===************=====++=:--=+++++++++++++++++++++++++++++++++++++++++=++++==================::::=+++++++++=-:-=+++++=+++++++++++++++++=++++++==+*+**+++++*
================================+***++++******++++************=====+++++++++++++==-==++++++++++++++++++++++++++++++=++++===============+::::=+++++++++++++=++====++++++++++++++++++++=++===+++******=***
================================+*****************************=====+++++++++++====:::-==-======-==--=----===========++++-=============::::+++++++++++++++++=+++++++++++++++++++++==+==++++++++****==+***
================================+***++*-******=-=-************=====++++++++++++=+:::+++=++++++++++==-====+++++++++++++++::::::::::=-:::-++++++++++++++++++++=++++++++++++++=+====--=++++++++++***+++=***
=++*+===========================+**+=--=******=-=-************======---------===:--++=-++++++++++=+=====================+++++++++-:::-++++++++++++++++++++==+++++++++++++==+===+++-==========++++++++++*
====-===========================+***++++*******++*************=================---++==++++++++++-=++======+==-=========+=++++=+::::=++++++++++++++++++++-++++++++++++==+==++++++++-==========+++++++++++
================================+***************+*************-==============-:--++++++++++++++==+++++++++++++++++++++++++++=::::=+++=++++++++++++++++=++++++++++++====+++++++++++-==========+==========
================================+*****************************-============+---=++++++++++++++==++++++++++++++++++++++++++=::::++++==+++++++++=+++++-+++++++++++=-=+++++++++++++++-===========----------
================================+***=-=-**********************-===========+:-:=+++++++++++++++-+++++++++++++++++++++++++=:::-++++++++++++++++++====+++++++++=-++++++++++++++++++++-=====================
================================+***=-=-**********************-==========+:-:++++++++++++++++=++++++++++++++++=+++++=+-:::-++++++++++++++++++====+++++++===++==+++=+++++++++++++++-=====================
=================================**+++*++*********************-=========+=::+++-:=-=+++++++==++++++++==========+====---:-+++=++++++++++++++====+++++===++++++======+++++++++++++++-=====================
+*+=...------::***+....:-..---...-:...-::..-=+=:.=*#=..::+.+==.:....-:.:=...=-..:-----==.:-:-----==+++===-...:-+.:-=-.-=..:++=+++====+...:-=.....-.=:=-#-:..:===+++++++=..--.-:=.:..-=--+++=++.:-.......
=-::.:.---:-+-:***=....-:.:---:.........---++=:.-===*::..-+==::....=+-+**...=#*-=++=-*#*...........-=+**=....-:+-.:+-.:-*++===++-=+==+...........=-=-++++====.:--:-===.......+*+*-..:=--=+==+*::::.::...
=---:-::......:##*=.**..-::-:::--::-=:::==+#+-###-==#:...:-:::::....+:=+=-..=##::+=.-##*.:=++++:...-=*##+=-::=:+-.-+=-*+*#*+++++++++++...::......-=-:*+=*+===--::--::.....::+*###*..:-.....::...:.:::-..
:::::-=+**********+...:.::::.:.:-----::-:--:=+-*=====:..-==+=-:-:.........:=*##:.::.-##*:+#*++*#*..-+###*+=-:=:#++*#######*+++++++++++....:---:..=***#####***::::::::::::.::*+****..*##########+........
:-----:+****####**+:::::::::::-----::--=::::--::--:--:..--=+-----.....:-::==*#*:-==-:##*.+=++++++..-=****+--==-#+#########********+++*...:-==-::.+**######***------------.:==****-..*+#*+***#*+*==--++++
:.::::.++****#####*=++++=+==++--=-=+::--=:.=.::.-=:-::::.:-+:::--....-:=:===......:-....:*-=++***..............#+*#########*===+#***+#.....--..::+*=:.....:*+=--=+===---:..:=****-..***+==+*#+**+-..==:+
--:.:--+++****#####=+++=-=++++:-==:=-:-:--.:=:..::.-:-===--+-====...:+=++==-....=*=:**:.:*.+*****:.....+.-.....############*++++#++*+#-.:=::-==::+@-..:+*=:##====+======-.::=*#++-..*==++++*+=#*+-..===+
-=++=--=+++++++++**+++==.-=++=+---:-+***++=+++--::--:.....-::.......:=+++=::...-##+=*+:.:*:*+=++*+....*=-=.......:=++===-:=*++++*++*+#--.::.:--:-+@-.:-*-:-##===========:-++=.:--...**+*+*+*++#*++=++==+
*******++******+++++++=+======..::-:::-+::-+=*=--+:::....:-::........-*+=........:-:-:...-.=====++....***+*....---===---:.-**********#:::....:.::+@##=.:.++##++==-=+======+==:::-:..+++++==+++=++=+++=*:
++***=.+******+===-===========.....==-:-+-:::-::=+**#:...=-::::......*+++.....:--:::.:::.=.+++=++*:..-**+*.....-:.:-::......::-=..:::-:......---:=@#**-.+#*##:.:..:::.-=-...........**=++*+++-:-++**+===
++=:...=+++++++===-===========:::--=====..--==.:---.+:..:.--*-::....:++==....=*##:===:=-.-:-++++*=:..:+==*.....:.:+++-:-:..:==-+..=:=+.:..::-----=*+-==-===#*:::.:...:--:...........++-+++++====+=**+---
-......==+========---+=..-=-:=.....+*=.....::.::=====..::-=+=-:=-...:==.:...-###+:--+*-+....:.=:=:....+*##+=:..............*==*+:#:-*=....--:-::.=*++####+*+#-=-:..:+*:=............==+==++====-+=**+---
:=-==========------:--::-=-.-=..:::::-:...:::-.:===:*:...:-+=::::...........-**###:::.:+##*-:::-+##-.-####*+...+++=+=-===+==:.=+.-::==##*==+######*##########.......................------------=++++---
=++::+#*++++++++++=.--::::-----::.::::::..-=+=::==:.-.:+#*--=++:...:=**###*******==+**+=#:..=+++:.+-.*#+*##+...-=++*-:::::=:..-=:::.:*#*..-*#**###**###**####.......:=....::::::::-:*########***=:..=+++
=-:=-=-***********+..:-------:.:=+===-=-..:::-:-*+#*#-**##**+**##*****##-#=**++=++++++++-.:*=.:.-:::..=*+-:....:++**+-::::=....=-:...-##-..-=:=###**###-#**##........-...-====++++++*######****+====++++
-:=*++:***+-=**=-++.:::------:.--:..=::...=-=+.:--:.==#+######*##*******-#+=*--=++=+++=+::=:..:..-:*########*#*--::--:..:.-...:==-.-.=##*...:+####*+*##-#****-----::-....-===....+*+########***+-:*=+==+
:-.:--:****--=+---+##+------=#:.:...........-::-+++++*++++=:....-+-=****:*#++-=+++++=+=++:-....:.::#**#+#***=+=-:.::::::.:.:+=:=##=-*#*#=-+***#**########*##*-+-+=====+=:-===-...+*+*###*:..***+==+=+=++
==--++=*+-=:::=:::=##.......:#+--....====-::+=.:--==**+++.......--..-==+-=+*+##**==+--:-@*--.:..:+#####*****+*+=:-:::-=:.::++--###*+@#---======++-::::::::::.=*.:=:=+...---=-*::.+*+####*++*##*=.-:.--=:
----:-=+:.:-=-+:::-#*.......:#+==:...++++-.-=-::-=-.-*+===+.....--------=====+***====:::####***####*===-+===-=-=-=====-:::=#*-####**#+---=====+++-::::::-:-:-::.-*+++..:=----+---=+++***###****=..:-...:
+-+==:=-:-====-----##-......:#**+-.-.-***=----==---=-=++==+--++==---:==========-===-::.............:..:.-.#####+--++++=-.-=*==#*+*=***:-==--==+++-::=-==::-::.:-=++::*-.-+-=-=-===++++*********=.......:
+-*+-.=+++*++++*+++###+.....:#+*+=...=#**=.:-.:=:.-:.+....-=*+..=--:::-=-===*###*#*####*.............:+-..-++-.-=====-+-::-=====:-===-.:-:..:::---:=++=----::..+#*=.-+:.:=:--+-=====+*++*******=:..:...:
:----==*****++=-::-######***##*#*+:+==#**-:--::::-=-.-..==--====+=----==---=*##=--=-*##*...=*-........=...-+=-.:=-====+-.---=====-====####=*#####=:::----::-:..-.::......-::.::::---+**********=....+*+-
=-=+=-=..-.........:-==---.:=:+***---=#+--:::--.=-=-.=+===+*+======-======-=*#+=-===-##*..:==.:-...........:...:-::-:::::-:----=*+.---###:=::.+##=-+:-:::-=::=+*#######--===++++*##************=...=*+-=
===+-==.....-..-.....-:.:+===#****--.=**-+...::--:-..-++=::-.:-===++++++=:-:+@=-==+-:*#*.::=-.::...............==.:-:-::.::-----:..:--###**#**###=::-:::=::::=+#=-+=#:+-:==*##*+++*+=--=+===+++=-:.::..=
+=+=+++....--..-...=::-====-+#+**+=-.:+*:....::::::...=...-=##@#+++++==++=:+*@+-==--:*#*:--=:..................--.::::::.::=-----:----###########+-:::--:::::..:..-+*-*+=###++++++*+==-=+=+++++=..::-..:
*+*****........:.....:-=+=-:+#:...=.:.....-..:.==:::.-=...=:-#-*+++++++=-=+:+#*-----:+#*...:-+.................++*******++*##########**:+::::::*#=.::::::::::-=*=+******+***+++****+==-.=++==++=.:-:::::
#######............:--.......::...........:-==:::::..-====-=*-:.=##*******+-*#*--.:--*#*....:.......:::::::::::****+##*=***###***###***.:+:.:...#-...........=+=:+++++++*##+.....###-:::-=++-=++-+:::-::
+##+=+*...........:====+*++++-:............::-++-::..-=:...:+-..--====-=====*@*------*#*...:-=:....:=====------***+.+**-=*+--:::+****+#-#=+...:.+-...........=+=..+*+-:=*#+...:=:.-#---::::---=-........
=-*--:=:-::++*#******=+**##++=:...............:-==-..-:=:...-...-=====+=++==*###########.:.:.......=***********+==:::::-+=+**********+#+#*#*:--*#-...........===.::=+*::-#:...++*.+@---::::::--:.==.....
:.-==--..:::.-=--==-++::::...::...........----.:-:::::-:-.....:::=-==-=.:+=+:.:+***#+=*#***+*#*:::.-++=....:*++==**+*+*+*+-=====++++*=**#########-...........--:.::=-:+:-#*.+###+*##:....:......:-+=....
#######.:-==-:...==-:...---::::...........---::.:=---:.:-........==--:.-+=++:..===+=--+-**+*+++*-:.=*==*#+#===+...:-:---++=-----------###==######-...........:::--=***#+=##*#+**###@:...........:-+.....
#######.--+=-::.:--......:::=+..::...+*=..:---:.::::.********#***==-:=-+===+:..:.:::.:+-*++-+**+:..-::........::::=+++=-+==-----------###-+*#*###-......:=*-.-++=-.=###++##*########:..:-++-:..-+-.:.=..
*+**###:-:=+:::..:-:::::.:::--..-=.+.:==..::.......:-**=+++++#+++=:-----:--=:........:=.:::::......:-....:.....**#*++**::=+-----------###*#*=####=..=+:+-.+**++*+*==+*#######**#####:.---==--:..........
+=+*=*#+++==:-++--+::.:---=-=+-=+=-:++***:..:.:::..::*##*#=...=+*=:::::::.:=:.:=+==.....#*#*#######+=-:::::::::.........::--===:=====-=+++++++++=:.-+====...:...........:#######*###::--:..:--:.........
+*+-+**************+=::--:::::.::+-:++++-.::===:-=:::+###*=-::=+*-:::::::::-...::....:.:=::.*+#*#@@#############******#**#=-==+===+==-+++-=:-=-+++**=+==+**+......::....-###=*######::---++:::--=***=:=*
=+:-=+#*#####*+-...-------=+++......=::::::-==-=*=::.++*+#*-+#*=*------:----:..:::..:.:.#***##########@@###@@##*++*+******+==+=*-+:==-+-+------=--.-*:-**-::............:##**#+****#-----==-:-===+*+=-=*
-=--=++###@@###*+==*---+-----*-==++*****+--=++=--.:-:+:==.....:--==-=====-==:.:.....----#*#**##***+###@@+=*####*+*+******#+=======----+------:---:....-..:...:::::::::::=***++++++++-----+-:---=+**=:=++
.::..--*#########**=::::+--:-++=+***=**======-::.-:--=....-...:+===:+===.-==-..-:::::::.############@@@##*##@###*+***+:=**=---==-=--::****#*+*+++-.:.:::....:**+=+*=+-+:************-:--:.-=---===*:-:-+
-+:::==*#########**=::::+:--:=++***+*****=:-=----::.-+:.::.:.=+++===++=+-.=+=:::--.:-::.##*====-:+##@@@@@#@@@##*******.:#*###*###**=#*==-+##+-::=:.........::=-+=--:-.:-=***********+===-===-++=........
:-=-=-:***+*#######=::::+:---++**##**+*****#*+.::-..+=-::.--..-=-====+==:-==-:-:..-.::..#*----=*+-+#############**###+..*####*#****##*:::+++=--:::.......-:.:==----==---+********###+++-=+----+-........
=-.:--.*##****#####=.:::+----++*#********=..-::.+--.*=--==---=====:::+==-===:.:.........#=:+##+-*##=-=:....-...#*####+.=#####***##****..-:=-:.-::........--=:*###########***********+++=-=-:-:=-..===...
:=:-:=+++*+*****+**++++=+=+==+++===+-.+##++=......::+.......:....==--::::::=:...........###########+-=+---=--::######*:+##############.-:::.:-.:......-+::=-.*#####*#*###********##*-----==-:.--..+**...
=:-:.-:=+**######**++++++++++++***++*-=**+##-.+=...=-..:....:.:::===-======-*###++#####*...........:==*#*=--.*#######**###*+=*##*=+-..:.......:.:....=**::-::*+-#+#++-*##****#******======+=---=.:**=:-:
-===+=-************++++++++++++*#+==::==#+*=+==+#+=++=:........::========+::*###*-#####*.....=......:-.--:::.:=...........:+*###*#*:............:-++=--*###****+#*#+++*+#****#******+++--=--.-+=.:==+-==
.---+--====++=++++=====+=====-=**##=++:-*+##=*#######=:--------::=-+*#*=:-++*##+--..###*....:-......-++*+--:=-+=:-.:*.:+..:==*++*##+=:#+++**+**+**++++*+*##******************#=-****+++=--==+-+=.....-==
::=...:::---.::==-:===*#=+++=-==:-+++-::*+*+=*+++****-.-======---**=:+##**+-+##-....-+*-:.....:....:=+=-+-:.==++#=+##*##++=:-+=+====.:#++=::-++++******=-****##**##*+*++######++####++++:---=-=+++++*###
#*#####--===:=+++-:==--=-==+===-==--=--++++*--+*==-++=:-++=++===-...........=*+.-:...-#-..:-...:==++==+::::::--#########*#=...:--.....#++=*+*+*++*++***==**++*#*******++*###########*++-:::---=+-#######
--....====+=.:+*+--==-------+=+#*=-*=*++*+**-:++=**-*-:=+++++++--....:......-=+...:...+-:-==...===*-.-+*=--.==+#::+***:.:#--.::::.....#*=#*+-**++=........:::++***++*+++*###########=.:::--:::-:-++++**+
---++-=-====**#*+-:+--------==+*#*+**=***=:=:===-=+*=-:=+===-=-==:::.:..:::.-++-.......--===--:===+###*=::-*#+:+**++++=*+*-..--:......#***=:***+*=...........++*+**+*+*=+###########..:::.-::...::::::--
===--:=-==:=***++-:+--------==+##########=-=-===------=+===--=--=:::::..::::-*--..:*...--====+=+=++##*=:=-:++=---+=++**#**=:-::.......#+***+-++++-...........+*****+*****###########:.-=+=:-::..::::::-:
..-==:=-===+##+++-:==--------=*#@@@##@@@#*:+--*++----==+++++=+++=::::::.::::=*=*=.:#*++*======-+==**+-:.-=+=:=-+#===--+=+*-:::........#++#*+=-+++-...........=*+++++++++*###########....-++-:...:...:-:-
--:::.=-===***-+=-:=----------*##########*---=**+==--............:::::..::::=+=++=-*++=+-====-====*##*..:**+**#*--+=--====:...........#=-#==:-+=+=...........++++++++++**#####**####....:::--:..::.---:.
..::-.=---:...:-::.-====-=----*#*########*---=#+====-............:::::::::::=*++=--==:::#**********##+...*#####+++-......-:...........#====----=+-...........*##***#**#*#***#+-+*#**---....=---....===:.
...:-:=:..........:+=====---::*##########*-=-=#+===+-............::::::.:::.=*++=--==:::***********##=...-#####++**+=+++**-...........*###*####**-...........***###*-=##+:-++==*+--::---:..:::.::..:::.:
-:::..=:...........========--:*##########*===+#+===+=............:::....:.:.-*++-::.-:-:*****#*****####==*#####++#***=+**+:.....::::::::=+:+*+++=----::---::-#***++*==+++::+++++*=:.:-:......::=##*==:-+
*******............--======---*##########*===+#*==+==............:.:...:.:::=*+*++++-:--*********###***-++#####****#=*****+***********:=*=:+*#**#-...........*###**##++#=....=+.......:.-:--.::=#*-*.--*
...................=------:-:-================+#++===............:..--=--.:==::.........+++++++**+*+**+-::......-+*+-=**+==***********::-*++=**##-...........*=+*=**+**++...:==+....---::::::==--**#+=*=
-------............--==-:--:::-======+**==###########............::++----...:-:.....-*+=--==+++++===-==:::.....##*-===*####******+****:::::==-+##=::::::::.:.***#****#*++:.:.-=-....*##*+==--.-:+#*+===+
--::--:............------+====-=#=---+++=-########*++.............=#+=:=-:..:-:.....::-===+-==-===+-.+*-.:.....##+.:::=#@@#**-:-:-:+***####*#####=::*+:::::::*+*+*+##*****+++***++++::===+*=-:::=**+-+-+
---:..:------:.:::--.::+=====--:.::--...::+***++++++=............:-*--:-::-*:-.=....++==+**===-++*+::-=:.:=-...##+.:..=+**#*****************+==--:..=-:.-::::++*+*++++++*++**+++++=*==*+==-+-:::-:-===-:
=--:...*=++*+=-==+*-.:=:-:::-=............---========..............++=-:.-#::-:+:.::-=--++*++=-+*+=-:--+*++-::-*+++++#*++*************.::::=+++==-...:.==-.:.::---===..:=##*******+#===-=+--::::-:::--::
.::.:..-=*+==+-=*#*===========....-=:.....---========..:::--:=-....:==-..:.=-:.-+=----.-+***+==*++=++++*###++++#+-:=-=+++##**+=++======+==++++==-:+-=-==-==+-:-=-..--.::+******+**+#-------:-..:=-------
:.....:+++*-++-+=**-========--....+*=.....-:-----=---..:=-:.::...==*=.....++--.-++=--:::+##++==+++=+=-=*###====##+-=-=++###**+==+====+:---====-=+-=:-..:---==-=---:=-..=+##***##***#::+--=====+=---=----
...-:..+++==---:::=---=:.:.-**...:*++.....::-:-:-+--:............:=#=:....:+:.=--++=:...==+=++=*+-::---=##+=---:-:-:-::---+**+=+++++=+===+*+=++**----:-----::+*#=+++=-:-++-==+*=+=+#:::-=-----++--------
......................................................:======+:...............*-............................................................+=..........................................................
.....................................................-########=..=######+.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@##.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@#*.....*-............................................................+=..........................................................
.....................................................:##@@####=..=######+.....*-....................:+.*-:-+:...............................+=..........................................................
......................................................#####+=#+.-########+....*-.....................+-.*-.+=*.++.*--++.....................+=..........................................................
.....................................................-#######*+.:##@@@@@#+....*-......................-.:..+=*.+=:*..+=.....................+=..........................................................
.....................................................-########=.:####@@##+....*-............................................................+=..........................................................
.....................................................-#=+##=##*.:##*####*+....*-............................................................+=...........................................:....:.....-...
....................................................-*#--:..--+.=##*###*#*....*-.........................-+.+..*:...........................+=.........................................:-............=:.
....................................................=##***...++.*=-#++=+##=...*-........................:=--=-:-+::.........................+=......................................:...-:..........:-:.
....................................................###....:..+##-=-..=+*#+...*-..................................--........................+=.....................................-+########-.........:
....................................................+##:.-=:.-=##+-+*=-.:#*...*-.......................+-=:--.+:=..=-.......................+=.............................-+############@####*=........
....................................................###+=###+=*#@#########*...*-........................*::--:+-+.:.........................+=............................-####@@@@@@@@@@@@@####*-...-:.
....................................................######################*...*-.......................+---::-:::-:-:.......................+=...........................-*###@@@@@@@@@@@@@@@@####*.-:..
......................................................:::..........:::::::....*-............................................................+=..........................=*####@@@@@@@@@@@@@@@@@@@##=.-..
..............................................................................*-............................................................+=..........................-###@@@@@@@@@@@@@@@@@@@@@###-:..
..............................................................................*-............................................................+=.........................:=##@@@@@@@@@@@@@@@@@@@@@@####-..
..............................................................................*-............................................................+=.......................-=######@#@@@@@@@@@@@@@@@@@@@###-..
..............................................................................*-.....................+............:.-.......................+=...........................:+*#####@@@@@@@@@@@@@@@@####...
..............................................................................*-.....................+..=.::-*.*:-..+.......................+=..................:.:######=...:*##@@#####@@@@########+...
..............................................................................*-....................-+:.:+--++-+-=..-=......................+=.........................-=--#*-*###@##*==:..:-*#++##*....
..............................................................................*-............................................................+=..........................+=+::..*########*+*######+.*....
..............................................................................*-.........................::.-..-............................+=.........................=.......=##@###-....=#######=....
..............................................................................*-.........................=++=:=-:...........................+=......................**##=......-#####*:++...--+####:.-..
..............................................................................*-.........................=---------.........................+=..................-=######-......:#######*=.-**+.=###.:+..
..............................................................................*-............................................................+=.................=###@###**......:###@###############*#=..
..............................................................................*-........................=-::==.+:+..........................+=.................=*###@@###-....:####@@@@@@#@####@@###*:..
..............................................................................*-.........................*-:+=-+-*..........................+=..................+###@@###=...:.####@@@@@@@@@@@@@@###*...
..............................................................................*-........................+-..................................+=..................=#@#@@###+.#*.:##*+##@@@@@@@@@@@@###:...
..............................................................................*-............................................................+=..................+#########:-::=##+*##@@@@@@@@@@@@##*....
..............................................................................*-............................................................+=..................::=########:-#######@@@@@@@@@@@####=....
..............................................................................+-............................................................+=.....................:*####*=###@@@@@@@@@@@@@@@@####=.....
..............:=##******=::...................................................*-............................................................+-.....................-###==++######@@@@@@@@@@@@###+:......
..........-######@@@@@########@@##+-..........................................*-............................................................+=....................###-.:::-=++####@@@@@@@@@@@@#-........
.......*###@@@@@@@@@@@@@@@@@@@@@@@########**-.................................*-............................................................+=..................:##+:=....::.....=*###@@@@@###*.........
.....+##@@@@@@@@######@@@@@@@@@@@@@@@@####*####=-:............................*-............................................................+=...................+==*#*:=##*########*#@@@@####..........
....###@@@@@@@##*-...*###@@@@@@@@@@@@@#+.....=####@@#=........................*-............................................................+=...................+#**######*#########@@@@@###-..........
...##@@@@@@@###.........##@@@@@@@@@@##-...**+.:##@@@@#####*+-.................*-............................................................+=....................+*.-##@####@@@@#@@@@@@####............
..=#@@@@@@@@##=.........=#@@@@@@@@@@##:.:.:+-.+#@@@@@@@@@@#######=--..........*-............................................................+=.......................=@@@@@@@@@@@@@@@@####+.............
.:##@@@@@@@@##-.........*#@@@@@@@@@@##=.-#+=..##@@@@@@@@@@@@@@@@@####=........*-............................................................+=..................-....+##@@@@@@@@@@@@@@##*...............
.*##@@@@@@@@#+.:*-=.....*#@@@@@@@@@@##=.*#=..:##@##@@@@@@@@@@@@@@@@@##*:......*-............................................................+=.................+###+:+###@@@@@@@@@@@@###.+..............
##@@@@@@@@@@##=...::....:###@@@@@@@@@##:::...*###-+#####@@@@@@@@@@@@@@##:.....*-............................................................+-.................-######*##@@@@@@@@@@@@@##..*.............
##@@@@@@@@@@##*...........-#####@@@@@@*.=*...+@##*::#+##@@@@@@@@@@@@@@##-.....*-............................................................+=..................##@###@##@@@@@@@@@@####+..+=............
##@@@@@@@@@@@@####=...:........+###@@@##:-.:.-##*.::+-##@@@@@@@@@@@@@@##-.....*-............................................................+=.................:##@#@@@@@@@@@@@@@@#####...#-............
##@@@@@@@@@@@@@@##..--...........*#####**.--.:=+:...-=##@@@@@@@@@@@@@@@#*.....*-............................................................+=..................*###@@@@@@@@@@@@@####=...+*:............
##@@@@@@@@@@@@@@#*..*............*##*#-+-:...+#-....-##*##@@@@@@@@@@@@@##.....*-............................................................+=.................+###@@@@@@@@@@@#####+....=#=.............
##@@@@@@@@@@@@@@#-..-:...........*####-.=#*=.*#.......++*##@@@@@@@@@@##*:.....*-............................................................+=..................*###############*=.....*#*..............
##@@@@@@@@@@@@###:...............-###+*#####*##....+*.-####@@@@@@@@@###.......*-............................................................+=.....................-=++++++++-........+++...............
*#@@@@@@@@@@@@@##:..-....::.......###.-###-=+-*...:=.==*###@@@@@@@@###........*-............................................................+=..........................................................
##@@@@@@@@@@@###*.................+###.=*+*-..*..=....:####@@@@@@@@##=........*-............................................................+-..........................................................
=#@@@@@@@@@@#+....................:###=:*#*:..+.....-:+*@@@@@@@@@@@##+-.......*-............................................................+=..........................................................
=#@@@@@@@###=........::............*#####==-..:.......-:*##@@@@@@@@@#*........*-............................................................+=..........................................................
:##@@#@###-......-.................*#######*::...........#####@@@@####........*-............................................................+=..........................................................
.=#####-...........................*####*-....*+.........##*####@@###*........*-............................................................+=..........................................................
.=####*................:...:.:.....=+-.....+::.*+-:+=.........=#@@#=..........*-............................................................+=..........................................................
.:####=....................:-............*+=::**+==*##...*#*..................*-............................................................+=..........................................................
.=####*.................................-#-........=.....*#=..................*-............................................................+=..........................................................
.=#####.......................................................................*-............................................................+=..........................................................
..=####.......................................................................*-............................................................+=..........................................................
...*###-......................................................................*-............................................................+=..........................................................
...**..*..............-.......................................................*-............................................................+=..........................................................
...:#*-#......................................................................*-............................................................+=..........................................................
..............................................................................*-............................................................+=..........................................................
..............................................................:-==++++++++++++++++++++++++++**************+*+++++++++++++++++==-::......................................................................
............................................................:-=+++++++++++++++++++++++++++++++++++++++******+++++++++++++++++++++++=-:.............................::::::::::::::::.....................
...........................................................::-=++***+++++++++++====================++++++++++++++++++++++++++++++++++++==-......................:::::::::---::::::......................
...........................................................:--=+*****+++++++====--:--------------==========+++++++++++++++++++++++++++++++====:.................:::.:.::::::..:::::::::::::.............
...........................................................:--=++**++++++===----::..::::----:::::::------====+++++====+++++++++++++++++++++++++====-:...........::::::::::::::::::-------::.............
...........................................................::--==+++++===---::::.........::.........:::::----==========+++++++++++++++++++++++++=+++======--:...::::::::--:::::::::::::::::.............
............................................................:--==+++===---:::.............................:::-:---=====+++++++++++++++++++++++++++++++++================----------====-=-------=--------
.............................................................:=+++===-:::.......:--:...........................:-----=====+++++++++++++++++++++++++++++++++++++++======================================-
.............................................................-=++==--:........:-::.....::::.....................:-------====+++++++++++++++++++++++++++++++++++++++++======++++=========================
............................................................:====---:.................:::..::.....::.............:---::---====++++++++++++++++++++++++++++++++++++++++++++===+++========================
............................................................-===--:..................::....:::...::---===--:.......---------===++++++++++++++++++++++++++++++++++==+++=++===============================
..........................................................:====-:..................:....::::.....:=+**#*+=-:::......-=--------===+++++++++++++++++++++++++++++++++=======+===========================---
........................................................:-===-::.....:--:...........::::::-::....-+######*=-::......:====------==+++++++++++++++++++++++++++=+++=+==================--=====-------------
..................................................::---=====::......::::---:......:-=-==----:...:=*######*=--:.......-==========++++++++++++++++++++++++++++++++================------------------------
.............................................::-=+====-----........::....:---:...:-=====---:...:-+*######*=--.........-========++++++++++++++++++++++++++++++======----=====----------------------::::::
......................................:::----==+++=----:-:..............:..:-:..:-======-:.....:-+*######+--:..........-=====+++++***++++++++++++++++++++=======---------------------------:::::::::::::
.................................::--=====--:::--------::::........::--=+=-:.:::-======--......:=*#######=-:...........:==+++++++******++++++++++++++++++=====----------------::::::::::::::::::::::::::
.............................::----:-::::....::--:------:::::::--====++****+-.:--======--.....:-+*######*=-:............-=+++++********+++++++++++++=======------::::::::::::::::::::::::::::.....::....
............................:--:.....::::....:--:::::::::--=====++*+++*******-:-==+====-:.....:-+#######+=:.............=+++***********++++++++++========-----:::::::::::::::...........................
...........................:-:................:.:::------=+=====+====++*******-=+++++==-:.....:=*#######+-...........:=++*************+++++++========-----::::::.::.....................................
..........................::-:..........:-----:--====--==+=--===++*+++*******+-=++++===-:....:-+*####**+-:.......:-=+********+++++**++++========------:::::.............................................
..........................::-:........::-====----===+=--=++++++*********+++=++===++====-.....:-+#####*+=---===++++********++++++++++++======------:::::.................................................
..........................:::--..:::--====----====+=+++***+++******+++++++++++=========-....::=*###**++++++++********+++++++++++++=====-------:::::.....................................................
............................:---..:-:----======+++++*******++++++++++++++***++-=======-:....::=+**++++++++********++++++++++++=====-----::::::...................:=+++=.................................
.............................:--:..----=-=+++************************+++++===========-:..:..-==+=====++++++++++++++++==========----:::::...................:-=+++======-................................
.............................::---:.--:::=*****************************+=----========-::..-==============++++++============----::::....................-=++++++++=======-:..............................
..............................::---:.=+=+++****************+++++++++===-:----=--=====-::-=++++++==--==----===========-----::::..................:--====++===========-----:..............................
................................:---:.=+****************************=-==--=+++=----=--:-===++++++=-------------------:::::...............:--================---------::::::.............................
................................::----:+***************++**********************+-----::---======--::::::::::::::::::......................:----------::::::::::::::::::::::.............................
.................................::----:+*****++++**+***************************+:::-:::::----:::::.......................................::::::..........................:.............................
..................................::----:-*****++++++++++************************=:::::...:.:--:...........................................::...........................................................
.....................................:---:-+++++=====+++**************************==-::.....-######-:...................................................................................................
......................................:---::+++++++==-=++++***+++*****************+=--:.....*######-:....::.............................................................................................
.......................................:-:::.****+++***++====+*****+++++++++++++***=--:....:######*-:...::....-.........................................................................................
........................................:-:::.*+:-+++*++=:------=***+++++++*******++=-::...=######+:......:...-.........................................................................................
.........................................:-:::.:-::-===-=-::--:-+*++**+********+++******=..*######-:....................................................................................................
..........................................:::::.::--=+==---:--+++++*********************:..##*###*:...--................................................................................................
..........................................=:::::.:-:-----:::--:-+**********#***********+..:######=:...*++...............................................................................................
...........................................-:::::..:::::-:..--=*********+***************=.=*#####-:..=*++*..............................................................................................
............................................=:-:::..:-:-::::=***#*++********************+::-+***-...:*+**+--............................................................................................
................:............................=:---:..-=+*****-=-==+*********************=::----:...+**+-==:.:.........................................................................:.................
..............................................=:----:+*+=+++*=**************************-::--=-:..-*+++++*==-=-.......................................................................:-................
....................:..........................-:---::-+-*******************************-::---:...-++**+==+++=-=...................................:::-:.......:.-=-:--::------::--::::-:...............
................................................=:--::--++=+***************************+*:..:::...-+++=++=:..--.:...................................:-:---:...:.........................:...............
.........................:::::...................-:---:::*+***************************+*++=-.......:===-:-..........................................:............................:::::...:..............
..................................................-:--::.:****************************+++..:.......::....................:--:-.......................:...:::::::---------------------:...:..............
.........................................:--==-----=---::.:****************+:-::====++--:......-+-.......................:---::......................:-:-----------------------------:...::.............
.........................................:=+++++==++====--::**=*******++====-=+*#*:-==-::...........................::...:--==-:......................:-------------------------::::::....-.............
.........................................:-=++++==+++++++====*+=-:.:*+****+*+-=**+.--:-:.......................::::......:-====--......................:-::----::----:--::::::::-::-------:.............
..........................................:-=======+++++++++++*++=+*****++***=--+:.........................:::...........:--=====-:.....................=----====---....................................
.......................:....................::---===+++++++++*+**++**++*+++=--.........................:::................:-======--....................................................................
.......................*:..................::.::---====++++++********++++++===-::.......:.........:::.....................:--=======-:..................................................................
.....................:.=-.:::.:........:........::----===++++++++++++++++++++++++===-:......::::............................:-========-.................................................................
........................:.::::::-..................::---====+++++++++++++++++++++++++++++===-:..............................:--=========:...............................................................
....................................................:-----=================+++++*********+++++==---:.........................:-==========-..............................................................
........................................::::::::..:::--:::---===============++++++***+++*+++++*++++++===-::...................:--=========-.............................................................
................................:.::::::::.........:::::::::::---====--======++++++++++++++++++*******++++===--::..............:--=========-:...........................................................
.............::.....................................:::---:::::::-----=======+++++++++++++++++++*********++++++===-:............:--=========--..........................................................
....................................................:------===---:::---=======+++++++++++++++++++*************++++++==-:........::--==========-:........................................................
....................................................:----===+++===----:---======++++++++++++++++++++*************+++++++==--:..:::---======+====-:......................................................
.....................................................:---==++++++++++===------======+++++++++++++++++++++++++++++++***++++++===-------===========-:.....................................................
......................................................:--===+++++++****+++==-------====++++++++++++++++++++++++++++++++***++++++=================---:...................................................
..................................-=====-:.............:--====+++++*******+++++===-----==++++++++++++++++++++++++++++++**+*+++++++=================---..................................................
.................................:==+++====-:...........---=====+++++++++++++***+++++=======+++++++++++++++++++=+++++++++**++++++++++=================-:................................................
.........................................:=+++++++++++++++++++++++++=========================================-:--::::.:..:...:::::::::.......-----------------------------------------------------------
.........................................:=++++++++++++++++++++++=+=======================================-::::::::::::::::::::::::::::.....:-----------------------------------------------------------
.........................................:=++++++++++++++++++++++++======================================::::::::::::::::::::..::::::........:----------------------------------------------------------
.........................................:=++++++++++++++++++++++++====================================-::::.::::::::::::::...::...::...........--------------------------------------------------------
.........................................:++++++++++++++++++++++++================================---:===-::.............:::.::....::::..........-------------------------------------------------------
.........................................:++++++++++++++++++++++++==========================-:::::::::::::::::............:::::.:::::::::..:......------------------------------------------------------
.........................................-+++++++++++++++++++++++========================-:::::::-::...-.::::.:..........::::::::::::::::..::.....:-----------------------------------------------------
.........................................=+++++++++++++++++++=+++======================-::::::......:.:.::.:....::.....:.:::::::........::.:.......-----------------------------------------------------
........................................:+++++++++++++++++++++=======================-::-:..............:.::::..:::....:.:::::::.........:...:.....:----------------------------------------------------
........................................=++++++++++++++++++++=====================--:::::..................::.....:::::....:::::..........:.........----------------------------------------------------
.......................................:+++++++++++++++++++++===================-:::::::....................:.......:::.....:::..........::.........:---------------------------------------------------
.......................................=+++++++++++++++++++++==================::::..:...................:..........::::.....:::::....::::::.:......:---------------------------------------------------
......................................:++++++++++++++++++=++==================-..........................................:...::::::....::::::.......:---------------------------------------------------
......................................++++++++++++++++++++++==================-:::...........................::...............:::::.....:::::.......----------------------------------------------------
.....................................=+++++++++++++++++++=++==================..........................::::----:::...............:.......::........:---------------------------------------------------
....................................-+++++++++++++++++++++++==============-::::::...............::---------------------::.........::......::.........:--------------------------------------------------
...................................:+++++++++++++++++++++++===========:::::::-:.............::-----------------------------:...............:::::......:-------------------------------------------------
..................................:++++++++++++++++++++++++=========:::::::..............:------------------------------------.............:::::........-------------------------------------::::::::---
..................................=++++++++++++++++++++==++=====-:::...................:----------------------------------------:..........:::::.........:----------------------------:::::::------::::-
.................................=+++++++++++++++++++++=+===-:::::::::...............---------------------------------------------........................:--------------------------::::::-------------
................................-+++++++++++++++++++++=-::::::::::::::.............:-----------------------------------------------:......................:--------------------------:::----------------
...............................-+++++++++++++++++==-:::::::::::::::..............:---------------------------------------------------......................--------------------------::--------::-------
..............................:++++++++++++++=-:::::::::::::::::................:----------------------------------:::::::------------.........::..........--------------------------------::::::::-----
.............................:+++++++++++=-:::::::::::::::::::::...............:-------------------------------:....:.......:::--------............:......:--------------------------------::::::::::---
.............................=++++++=--::::::::::::::::::::.::................:-----------------------------::=*####***+++==-:...:------..................:-------------------------------::::::::::::--
............................=+++=-:::::::::::::::::::::::::..................::::--------------------------=###############**++=-..:-----..................:------------------------------::::::::::::--
...........................-=::::::::::::::::::::::::::::.:::...............-:::::-----------------------+###################****+=..:---:...........:......------------------------------::::::::::::--
..........................:::::::::::::::::::::::::::::::..................::::::::---------------------###################******+++-.:---..................------------------------------::::::::::::--
.........................-+-:::::::::::::::::::::::::::::.................:::::::::::-----------------=###################******+++++=:---:.................------------------------------::::::::::::--
........................:++=::::::::::::::::::::::::::::.................::::::::::::::--------------=#**###############******+++++++==:--:................--------------------------------::::::::::---
.......................:++++-:::::::::::::::::::::::::::-=:.............:::::::::::::::--------------***###############******++++=+====-:--..............:---------------------------------::::::::-----
......................:+++++=::::::::::::::::::::::::-+=:...............::::::::::::::::-::::-------*****++===++++**********++++=======----.............:-------------------------------------:::-------
......................+++++++-.:::::::::::::::::::-++-.................::::::::::::::::--::::------+***++++======++**+++++++++++=======-:--..............:----------------------------------------------
.....................=++++++==-:::::::::::::::::-+=:...................::::::::::::::::::-::::-----**++=-::::===++***+==-------======---:::...............:---------------------------------------------
....................=++++++====:.::::::::::::::=+:....................:::::::::::::::::::-:::::--:+****+++-:---=+*##*+------====-------:.::.................--------------------------------------------
..................:=+++++++=====::::::::::::::-=:.....................:::::::::::::::::::::::::::-**#####***+****##*+=--::..::---------:.::..................-------------------------------------------
.................:++++++++=====--::::::::::::-=:......................:::::::::::::::::::::::::-=+**#########****#*+=====+=---::---:--:..-:..................-------------------------------------------
................:+++++++++=====--=:.::::::::-=:.......................::::::::::::::::::::::::-:+**###########**##+=-==++**+=---------:.:-...................-------------------------------------------
...............-+++++++++=====-----::::::::-=-........................::::::::::::::::::::::::=++****#######**+++=---=+++****++====--::.::..................:-------------------------------------------
..............=+++++++++=====-------::::::-=-:.......................::::::::::::::::::::::::-+=-+****######*=::-:.:-=+++****+++++=--:..-:.................:--------------------------------------------
............:+++++++++++=====--------::::-+-.........................::::::::::::::::::::::::-***++****#####****+=--.-++++++++++===-:..::...................--------------------------------------------
...........=+++++++++++=====----------:.-=-..........................::::::::::::::::::::::::-**+++*****#####*****+==++++++++====--:...:....................::------------------------------------------
.........-++++++++++++=====------------=-:............................::::::::::::::::::::::::**++++*****+=-------==++++======---:..........................:::-----------------------------------------
.......-++++++++++++++====------------=:..............................::::::::::::::::::::::::-==+++++++*******+=:::-======----::...........................:::::---------------------------------------
....:=+++++++++++==++====-==--:::::-+=:...............................::::::::::::::::::::::::::=++++++++++========-:-===-----::.........:..................::::::--------------------------------------
:-=++++++++++++========--:::::::......................................::::::::::::::::::::::::::-+++++++++++==-:::----------::..............................::::::::------------------------------------
=+++++=+++++===+++=-:::::..............................................:::::::::::::::::::::::::-===++++++*****++===-------::..............................::::::::::-----------------------------------
==========+==-:::::....................................................::::::::::::::::::::::::::-===+++++*****++==------::................................::::::::::::---------------------------------
=========::::::.........................................................::::::::::::::::::::::::::---=============----:::........:........................::::::::::::::--------------------------------
=+--=+=::::..::.........................................................::::::::::::::::::::::::::==::-------::::::::::........::.........................::::::::::::::::------------------------------
=:::::::.................................................................::::::::::::::::::::::::-===-........................:..........................::::::::::::::::::-----------------------------
:....::...................................................................:::::::::::::::::::::::+*====-.....................:.........................::::::::::::::::::::::---------------------------
...........................................................................:::::::::::::::::::::-*##+==+==:...........................................::::::::::::::::::::::::--------------------------
.....................................................:::::.................::::::::::::::::::::=*###*+=====-:.......................................::::::::::::::::::::::::::::------------------------
................................................:-:.::::::-.................::::::::::::::::::=*####**++==---:....................................:::::::::::::::::::::::::::::::-----------------------
...............................................:---:.:::::::.................::::::::::::::::::::::-+***++=-::::................................:::::::::::::::::::::::::::::::::::---------------------
................................................----:.:::::::..................::::::::::::::::::::::::-=++++=-:::.............................:::::::::::::::::::::::::::::::::::::--------------------
..............................................:------:.:::::::....................::::::::::::::::::::::::::-=+-.............................:::::::::::::::::::::::::::::::::::::::::------------------
:..........................................:----------..::::::......................::::::::::::::::::::::......:::....................::::::::::::::::::::::::::::::::::::::::::::::::-----------------
::::...................................:-------------=-..:::::...........................:::::::::::................................:::::::::::::::::::::::::::::::::::::::::::::::::::::---------------
:::::::.............................:-----------------=-..::::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------
:::::::::::::...................:---------------------==-..:::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------
::::::::::::::::::...........:-===--------------------===-..::....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------
:::::::::::::::::::::::...:-=======--------------------===-..:.........:........................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------
++-+*++*++==+++++*******=-----********+++++=+****+*******+***+++*++***************+**+++*************************++=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=++++*******
*++*++++++++++++++*****+:::::-++***+***++++=++++++*******++==+****+************************+****************************++=--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-====++*+
++**+++===++++***+*****=::::::-::---+*++*=+++++++*+::+*****+==++++++********************************************+***************=-:::--:::::::::::::::::::::::::=:::::::--::::::::-:::::::::::::--::::::
=**++++===-----=++*****:::::-***++=***+*+==++++++**:-*+++++===+++++**++*+**************************************************************+=-:::-:::::::::::::::::::::::::::.:::::::::::::::::::::-::::::::
+++*++==-------=-=====-:::::+***++***+++===++--+******++++++=++**+=--=+++**+++*++**************************++++++*****************************-----:-:::::::::::::::::::::::::::::::::::::::::::::::::::
+++++++---------=====-:::::::+*******+++-+++*+#+:#=++==+*+==+*+++++***++++++++**++*+++***********++*******++++***+++**************************-+*=-:-::::----:::::::::::::::::.::::::::::::-::::::::::::
+++++++====---=======::::::::++***++++++=+++++**####**++++:++++:+++*+=+++++++++++*+++***++++*****+*++****+--=+*****+*******************************+==::::::::--::--::::::::::::::.:::::-:::::::::::::::
----=++++++++++----=-:::::::-:-+++++++*=-=*+****#+**++++-**=+++**=*=---+++++*++===++++++*++++++++++++++*+++++++++++**************************************+==-::::::------:::::::::::::::::::::::::-:::::
++++++++++++++=::::::.::::::-::-:-+*+*+*++++**+**.+*+++===-+++++**#*+++++++++++*#=++++++++++++++++++++*++===****+++*******************************************#**+-:-----:::::---::--:::::::::::=+::::::
++++++++++++++++=::::.:.:.:::::=-+++++++**+-*+****+***+++++++++*+*:++++++++=+*+**==+++++++++++++++*++++++*+*+++*+************************************************+:-:----:::::---:::----::::::::::::::::
==+++*+++++++++*-::::::::-::.::+++++++++***+++*******+*+==*****+**+=++++++**=:=#*+**+++++++++++++++++++++=--==+*++***+*************++**********************++****---------:::--:-----:--:-:------:::::::
:-:::::-=+*****=::-::-:::::::::++===+++===+++*****+++*+=:=+**+=******++++++++*##*+=+*++++++++++++++++++==++==*++*+:-++***++*************************************+=--:---::::-::-::-------::---------:--:
:::::::::::--:-----::-::::::::-::=+++=+==+====+++++++*+--::++*+********+***+++*++++++++++++++++++++++++++--=++++++**++++++*******+******************+*************--:::-::-::--:-::------+**++=-----:++=
---::--:-::::::::::--::::::::=*****+++++++===++===+++++*****+********+**+**=+*#=:++++++++++++++*+++++++==+=+--:=+***+*+++++***++**+*+++++++*+++***++******+**++++**+=-:::--:::----------=**********+=---
::::::::::::::::::--:::::::::++++***+****++++*++++++++++*****+****++*#*+***=+***+-++++++++++++*++++++++=-=+++=*##+---+++++++++***++++++++++++++**++++++*=++**++*****+::::-:::--:----:--+*+*******+*+++**
::::::::::::::::::::::::::::-***********++*+******+++++++**+=+*****+==********+**+++++++=+++++*++++++++===-+++++#**++-++++++++++++++++++++++++++++++++++=+++*****+**=::::::::::-:::--+++*+*++++*******++
........:::::::::::::::::::-::::--++++++*****+**********++++++*++++*#*+*+*++*****++++++++++++++++++++:-*+=-+++**+=++=++++++++++++++++++++++++++++++++++++++++****+*+-:::::::::--::::-++***+*******++****
...::---::::::::::::::::::::::::::::::::-+**********************+++*+**+++++*******+*+*++++***++++++++++**+++=**+++=+-++++++++++++++++++++++++++++++++++++++++++***=:::::::::-::::::+++*++**************
=-:::.:::::::::::::::::::::::::::::::::::::-::-+**************+*****+**+++++*++++++**++**+***++++++++:--++++++++++++=:++++++++++++++++++++++++++++++++-+++++++***++::::-::-:---::::-***++***************
+++::::::::::..:..:::::::.:::::::::::::::::::::=******+************+*********++++++++++==*****+++++++*+++==+++++++++=:+++++++**++++++++++++++++++++++==*+**++*****+:::::::::---::::=++++****+=++++++++**
++**=:::::::::-::::::.....::::::.-*:::::::-::::-*************+***************++*+++++*++**++*++++**+=--*++++++++++++==++++++*****+++**++++**+++=-+++++==+*****+*+*-::::::::-::::::-++++*+*++++++++++++++
:++***=::::::-:::::::::::.:....:::-:::::::::::::::=*****************+**********+++++**+++*+*++++++++++*++***+++++++++++++++++++++++++-+=+++++++++++++++*+*#**+*+*+::::::::--::::::=+++-++++:+===++++*+++
..=++*+:::::::::::::-=**=::-::::-*-..:::::::::::::::::-=+************************+++++++*+**+++++++++*++*+++++*++*+++++++++++*+++++=*+++++****+++++++++*+++++****-::::::::-::::::-++*+++++=+=+++*++++*++
-.:++*-:::::::::::-*******+**=+*=::+:-...:..::::::::::::::::::-+*#*************++++==++**+*+++*+++*++++++*++*+++++++++****+++*+++++=+*+++=++++*++++=.-+***+++*+*+:::::::::-::-:::=+*=+*++++++++++++++*++
-.:+*+::::-::::::+*****+********+*++***=++=-::..:.::::::::::::::::::-=+****+++***##*+++++*******++++++++++++++*+*+++++++++++++****+++++++++**++++++**+**********-::::::::-:::::::++*=*++++++++++++++++**
-::=+-:::::::::-*********************++==+++****+=--::::::::::::::...=-:-*#*++++++*++++****+*++*+++++++++++*+++****++++++++++++++++*++***++*+++++++++++*++*****+:::::::::-::::::=++*+*+++++*++*+++++++*+
:..+++=-::++*--+=.:+****************+=++***+=+***++****+=-:..::...-*##+...::::::::-=++*******+**++++**++++*++**++*++*+**+*+++++++++++****+++***+++++++**+******-::::::::-:::::::++*+++++++++++++++++*+++
-.:+*=:==++=====:...-+************+=+********+=+************+++##=:.:*--==-:::::::::::::-==+******++++*******+**+++*******+******++***+*+*+++=-=+*+++++++++***+:::::::::-::::::=***+*+++=++++++++++*+*+*
-.:++-::::::=+=..:-:::-+*********++**********+*+=******++++##+=++****=-::::::::::::::::::::--::-=++**++****************++****+**********************++++++++++-:-:::::::-:-::::++*+*++=+=+*++++**+**+*+*
-::+=::::::-+=..-=--=:.:=******+=***************+==+**+=*#=+++++++++++*****+=-:::::::::::::::::------::-=******+**********+**+*****************************+++::::-::::::----:-++++++===++*+************
-.:+-::::::==..------=-:.:=**+=*****************+++==++#=::::::::::::::::-=++*****+=--:::::::::-:-:::::----::-==+**************************++****************=::::-:::::::::==++====+==++*++************
:.-=::::::-+:.---===-----::-=+********************++=-#:::--=====-=-===--:::::::-=++*****+=-::::::::::-:::::::----:::=+********************#:=*************++::::::::::--::-++++++++++++**+*+***********
::=-::::::=-..---====-=----::-+*****************++++-*-:----===-----=-------==--:::::::-=++*****+=-::::::::---:-:-:----------=+************##:-***********++=::::-:::::--::+***+++++*++++**+************
.-+::::::-+:.---==-----=-----::-******************+++*.:------:---------=======-====---:::::::-=++****++=-:::::::::-------------::--==******##+=****=-=+++++-:::-:::::::-:-**********++++***************
.=-::::::==..--==--------------::=*****************++*.-==--=-------------=----=-=====-=------::::::--=+++****+=-:::::::::----:-:::::..:::-+*##=:+--::::::::::::::::::::-:=*****************************
:=:::::::+:.:-==-=--------------:::=**************+=*=.:=---==-----------------------------===--==--:::::--+**+=+++=+=--::::::::::::==.....-=+##*::::::::::::::::::::::::-+*********************++******
=-::::::-=..---==-----:-----------:::+*************+*+:.:=--------------------:::----------------------=--::::=++***###*+=+++=-:::::-:::+++==-++++......::::::::::::::::::-=++*********************+++++
+:::::::+-::------:::::-------------::-************+**=:.:=--=--------------::::::::::---------------===---=-::::-+*+++=+##+++*****+##:.:--=+*#######*=-:::::-=::.::.::::::::::-*************+**********
=::::::-+..-----=-----:::::::---------::-**********++#=+:::--==------------:::::::::--::::::-------------==---=--:::-++*+++#++**++=+++****+==###*-:::::::::::::::::::::::::::::+**********************++
-::::::++.:----=-------===-----::::----:::=*********+#==+=::--=-------------:----:::-::::::::--------:-------=---==--::=++++#+++*******++++=*##***=--::::::::--::::::::...::::::=****************++****+
::::::-++.------=----:--:::---==-------:-:::=*******=#=+**=::--------------:::--:::::::-::::-------:::---------===----:::=++#=+***********+##=++++++****+==::-::::::::::......:::::-=+***********==+***+
:::::::=+:--==-------:-------:-------:::::::::+****++*#+***=:::-----------:--:---:::::.:::::::::---:-:----------===---=--::-#++***********#***********++=++--:::+=-::::::.:::::::::::+=:::--=+**====****
:::::::+=----------------------:::::-::----:::::+++**+#*+****-::--------------:::-:::::-::::::::-:::::-----:----====--=-==-.*++****************************+++==******+=-:::...::::::-::::::::::--==+***
.:::::::-=-----------------==------:---:-------::-****+#*+*****:::-------------:------::::-:::-::--:---:---------====-====--#:++**************************++*+*++************+=-::::::::::::::::::--::::
:-=+=-::=+--------------===--===-----------------::-***+**+*****+:::-----------::-:::::::-:-:::-----------------===-:-==---#=:++************************+*+*+***++*******+***++++++++=--::::::::::::::::
::::.::-+++=------------------=-=------------==----::=**++#++*****+:::-----:----------:::-:::-::-:::--:::-:---====-====---#-:=+**************************++***++*++++++++++++++++++++++***++=--:::::::::
--:...:=++++=----------------=====-----------=-==----::+**+##++*****=:::::::----------------::-----------------==--::::.-#-=++++++********************************+=-::---:-----:::-::::--=++****++=::::
...:.:-=++++++=----------------=-=--------------------:::+*++#*+++****=:::----::---------------------------::::::-:--=*#+=++**********++++**********************++----===========--===---::::::--=++****
........:.::-==++----------------------:-------------=--::-++++*##+++**+-::---------:::--------------::::.:::-==+==+#*++*******++++++++++++****++**************++::-==-======---======-:-----------:::--
..........:::::::::-====---=-=---==-------:---------------::-***+=+##*+=++:::---:----::----::--::....::-++++==+###+++*****++++++++++++++==+++****++++++++*****++::-======--==----=-------:--:-----=---::
.............:.::::::::::::-=========-=---------------------::-++***++++*#**==:-:::::::::......::-======**###*++++++*+++++++++++++=-:::::::-+++***+++++++++++++=::-==-==----==========------------======
..............:..:.::::::::::::::--====----------------------:..-*******+++++--:=++*******###########**+++++++++++++**++++++=-:::::::-==---::=+++***++++++++++++::-=---=-------------------------------=
....:::.............::::::::::::::::::::-====------------------:..=*+*+********=:.:-=+++++++++********+++++++++++++==+=-:.:::::--=----:::---:::=++****++++++++++=::-===--:-:--------:--::---------------
...........::..............:::::.::::::::::::::--===--------:----:.:+***********++++++*********++++++++++++++++=-::::::::--:::--------::::----:::=+*****++++++++=:::-----:-----:::-:--:-:-:-------:-----
:::...............:--:.............::::::::.::::::.:::-===--------..=++++****************++++++++++++++++=-:::.:.::--::------::::-------------=-::-+*****++++**=++=::---------:::----::::::::--:::--:---
:::..:::::::............:-=:............::.::::::.::::::::.::--:::++++++*****++++****++++++++++++++=-::::..::--:::::::-:::::---:::::------------=-.:-+*+***++++++++=:.----=------::-::::::.:::::::::::--
:::::::::::::::::................::.....................::.::::...::===+*+=++*+**+++**+++++==-::::::::-----:-------:::::::------::-----:::::::::---:::=+***+++++++++=::------------:::::::::::::::::::::
:-==--:::::::::::::::..:..............:--:............................:...:-=+**+*+++**+++::::::-----:::::::-----:----::::::-----------------:------::::=++****+++++++:::--------:--::::::::::::::--::.:
----=---===--:..::::::::::::::...:..............:........................:.::...::=+***+**++=::::-------:-------::--------:------------------::--------:--+******++++++-::----------::::::::::::::::::::
::::::::------====--:::::::::.::::::::::............::::......................:::......:-=+*=-+-:::------------------------------------------:--:-:----=-::-+*****+++++++-::---------:::::::::::::::::::
..:::::::::-----------===--::::::::::::::::::...............................................:::-=+------------------:-------------------:---------:::::--=-::-+*****++++++=:::--------::::::::::::::::::
.......::::::::::::::---------==--:.::::::::::::::................:::...........................::::::-===--------------------------------------::--:------=-::=******++++++=:::--:::---::::::::::::::::
.:.....:.:::::::::::::::-----------==----::::::::::::::..::......................................:::::::::::--===---------------:--------------:--------------:::=******++++++=:::=----::---::::::::::::
......:::::::::::::--:::---::-::::::-------==-:::::::::.::::.::................::::...................::::::::::::::-===--------------------------:::::---::----:::++*****++++++-::----------===--::::::
========================================================================================================================================================================================================
========================================:::::--:::::-=::-=====-::====-:-====--=====:::::-=====::::::=:-===-:-:::::::=::::::=-::====:-==-::::-==-:===-::::===-:-====:-===================================
========================================:-====-:======:::=====:::====:-.====:-=====.-=========:-=====-.-==.-====.-===::=====-::-===::=-.====.-=::==:-===-.==-::-===:-===================================
========================================:-====-:======:-:-===-:-:===-:=::===:-=====.-=========:-======-.=:-=====.-===::=====-:=:-==::==:-======::=-.=====:-=-:-.===:-===================================
========================================:::::=-.::::==:--:===:--:===:-=-.-==:-=====.::::-=====:::::-===-.-======.-===:.::::=-:=-.-=::===-.:-===::=-.=====:-=-:=-:==:-===================================
========================================:-====-:======:-=:-=-:=-:==-:===-:==:-=====.-=========:-======-.-.-=====.-===::=====-:==-.=::======::==::=-.=====:-=-:==-:=:-===================================
========================================:-====-:======:-=-.=:-=-:==:-----.-=:-=====.-=========:-======:-=-.-====.-===::=====-:===::::=-:====:-=::==:-====:-=-:===:::-===================================
========================================:-====-.-----=:-==-.:==-:=-:=====::=::----=.-----=====:-----=:-===-.-===.-===::----=-.====:.:==::--::==::==-:---:-==-:====:.-===================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
==============================================================::--:--------------------:-----::::---:---::--------------------------------:=============================================================
==============================================================--:=====================-:--=========--==========--:-====================----=============================================================
==============================================================-=---===============---==-===========--===========--==---==============--=-=-=============================================================
==============================================================-==-=--==========---=====-===========--===========--=====---==========-==-==-=============================================================
==============================================================-==--==:-======--========-===========--===========--========--======--==-===-=============================================================
==============================================================-===--===--==--==========-============-===========--==========---=--===-====-=============================================================
==============================================================:====--====:-============-============-===========--============-:====--====-=============================================================
==============================================================-=====--=--=--===========-============-===========--===========:==--=--=====-=============================================================
==============================================================-======---====--=========-============-===========--=========--=====:-======-=============================================================
==============================================================-======--=======--=======-============-====================--======----=====-=============================================================
==============================================================-====--==:========-======-============-==================--========-==--====-=============================================================
==============================================================-====-====-========--====-============-===========--====-=========-====--===-=============================================================
==============================================================-===-======-=========--==-============-===========--==--=========-======--==-=============================================================
==============================================================-==-=======--==========---============-===========----==========--=======-==-=============================================================
==============================================================--::---------------------:------------:-----:-----::-----------:----------:--=============================================================
==============================================================-=-==========--==========---==========-=========--=-==========--==========---=============================================================
==============================================================---===========--=========-==--========-========:-==-=========--============--=============================================================
==============================================================--=============--========--===--======-======--====-========--=============-:=============================================================
==============================================================---------------=-------=------==----::::::--:===----=====-=--===-==-====-===:=============================================================
==============================================================--===============:=======----::-:--:=-:--:----:::-=-=======-================-=============================================================
==============================================================--================:-------::--:-::-::-:-::-:--:-::-:-------=================-=============================================================
==============================================================-----------=---::---=----:-:----::-:--:--:-:--:--:-:=--------::-------------:=============================================================
==============================================================--====--::::-:--:-::-:--:--:----::-:----::-:--:--:----:--:-:--:--:-:::--====-=============================================================
==============================================================-::::::::::::::::::::::-:::::::-::::--::::::--:-:::::-:::::::::::::::-:::::-:=============================================================
==============================================================--:-------::-------------:-----------------:--------:------------::---------:-============================================================
==============================================================----:--:--------------------:------:::.:::------::----:--------------:---:--:-============================================================
==============================================================-:---::----------------:----=::----:......---=:------:---------------=-:---:--============================================================
==============================================================--:=:--:---------------=----:------:......-----=:--------------------:--------============================================================
==============================================================---------:------------=--:--=--=---:......=-------::---------=-------=----:---============================================================
==============================================================--:------=----=-----------:-=------:......-:=------:--------------------------============================================================
==============================================================-:--:-=----=--=--=----=:---:=----=-:......----------=:----=--=-=:-=-==---:=---============================================================
==============================================================-:-------=----:------:------:--=---:......-------:-----:-----=:---=----=--=-:-============================================================
==============================================================----------------:------------------:......------:--------:--------------------============================================================
==============================================================-------:-----:----:-------:--:-----:::::..-----:-----------:=---------:-------============================================================
==============================================================--------:-------:---:--------------:----------:----:-----:-----------:---:----============================================================
==============================================================-:--:::.::--:.:.:---:.:::-:-:.:.:--::::::.---:::::---:::.:=--:::::=-::::::=-:-============================================================
==============================================================-:-=:....=--:....=--....:---....:=::......:--.....=:-.....=--....:---.....=---============================================================
==============================================================---=:....---.....---.....::-....::-:......-:-.....-:-.....=--.....---.....----============================================================
===============================================================--:--=-=:---=--==----==-=:---==--::......-::-====::=====---==--=-=:-=-=--:---============================================================
===============================================================---:--:------=--:----=---:=--=----:......---:==:---==-==---:=-=--=-=:-=-:=---============================================================
===============================================================--=:....--=:....---.....-:-....:--:-=-==---=.....--=.....---.....--=.....=---============================================================
===============================================================---:....---:....---.....-:-....:--:----:----:....-:-.....---.....---.....=---============================================================
==============================================================--:-:....--::....---.....:::....:-::--::=--:-:....::-.....---.....::=.....-:--============================================================
===========================================================-::-:--::::-----:-:--:-::-:--:-:::::::::::::.::-::-::-:=::-::::::::::-:-:::::-::---:=========================================================
========================================================-----:----:---=---::-:--:-------:--:---=:::.....-:---=---:----:--:--:-::-::------:=----::-======================================================
=====================================================-:-=----:---=-----=--:--:---=--=---::::----:-..:.::::---:::::---=---:--------=--=::------:----:-===================================================
===================================================-:----------:-------------:----------::::----:-.::.:.-:----:--:-----------=---:----:---=--=--------:=================================================
================================================-:-=------------=--=--=----:-::-:-------:---=-:=--......---:-=---:=------:-:--:---=---:-----------=-----:-==============================================
==============================================::-:--::-:--:-::-:::::::--:-:-::-:::::-::::-::----:-.....::-----::::--------------------::---=-=---:=--=-----:============================================
==============================================::----::-:------------::-:--::::--:-::-:--:--:----::......::-:-----:----:--:----:--:--:-:----------:----::------==========================================
========================================================================================================================================================================================================
---------------------------------------------------------------------:.....................................................................:::----------------------------------------------------------
---------------------------------------------------------------------------...........................................:::-------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------:::.:::-----=-----------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:-::::::::::-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:..::::::::::::--------------------------------------------------------------::::----------------------------------------
------------------------------------------------------------------------------::...:-:::::.:::--------------------------------------------------------::::::::::--------------------------------------:-
------------------------------------------------------------------------------::...--:::::.:::---------------------------------------------------:::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---::::.:::--------------------------------------------:-::::::::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---:::-.::::----------------------------------------::::::::::::::::::::::::::-------------------:----------::-------
------------------------------------------------------------------------------::...---:::-.::::---------------------------------------:::::::::::::::::::::::::::--------:--------------------::::::::-:
------------------------------------------------------------------------------::...---::::..:::--------------------------------------:::::::::::::::::::::::::::::---:::::------------:::----::::::::::-
-----------------------------------------------------------------------------:::...---::::..::::-------------------------------------::::::::::::::::::::::::::::::::::::::-----------:-::-:::::::::::-:
-----------------------------------------------------------------------------:::...:-::::::.::::-------------------------------------::::::::::::::::::::::::::::::::::::::----------::::::::::::::--:-:
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::::::----------:::::::::::::::::-
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::---:----------::::.-.::::-::----
-----------------------------------------------------------------------------:::...::::::::.:::::------------------------------------::::::::::::::::::::::::::::::::::::------------:--::::-:---:::----
----------------------------------------------------------------------------::::...::::::::.::::-----------------------------------.:--::::.:::::::::::::::::::::::::::--::--------=--:-:.-:::--:--:----
----------------------------------------------------------------------------::::...::::::::.:::::---------------------------------.:::-::::::::::::::::::::::--:::::::::::---------=----:.--::--:-------
---------------------------------------------------:..::--------------------::::...::::::::.::::---------------------------------:::::--::::::::::::::::::::--::::::::::::--------==-:--::::::--:-------
----------------------------------------------------------------------------::::...::::::::.::::---------------------------------::::::::-:::::-:::-::--::::--:-::::::::----------=-:---:::..--::-:-----
----------------------------------------------------==----------------------::::...::::-:--:::::----------------------------------:::--::-:::::-:::------:::-----:::::::---------------::--.::::--:---:-
----------------------------------------------------===---------------------::::...::::::--:::::-===-------------------------------:-----:::::-----------:--:---::.:.:::--------------::----::.--::::---
---------------------------------------------------=+++=--------------------::::...:::--::-.:::--------------------------------------:--:::--------.--------:-:---:::::-----------:---:-:-:::::::::-----
----------------------------------------------------++++--------------------::::---::--=-::-:::::------------------------------------------------::-::-:----::::--::::::----------:---:::.--:.:::-------
----------------------------------------------------=+++=-------------------:::---:-:-=--:---:--=---=--------=----------------------------------..:.--::---:::-:::.:.::::---:-----:--:::::::::----------
----------------------------------------------------====--------------------:-=---.:-::-----------=======-=-------=--------------------------::::::::::-----::::::..::::::---:----:---::-:.:------------
---------------------------------------------------:----------=--------------=---..------=-------==========-------=------------------------::::.::::::--::--::::::::.::-::::-:-----::--:::--------------
---------------------------------------------------::==:-----------------------::--==------:=-=-:--=========---=-------------------------::::::::::-:-::--::::::::::::-.::::::---:---::::-:-------------
-------------------------------------------------=-..:==:--------=-----------:::...---------------=-----=====--------=-----------------:::---:::.::::::-::.::::::::::::::::::-:::-:-::::--:::.:---------
----------------------------------------------------::--------------------==-::::.:---------=-::---::::-=++=---------=---------------:::::::::..::..::--:::::::-:::::.:.:::::-:-:--:.::::..:..:---------
-----------------------------------------------------=--------=-------------::-------:::::::.::::.......:-==--=---------------------::::::::....::::.::::::..::-:::::::::..:-:::-:::---:.::...::--------
----------------------------------------------------+=--=-------------------=---:----:::::::.-:::::::::-----==----------------------::...:::...:.....:::::..---:-::-:.::.::.:-::::::::-:::....::--------
-------------------------------------------------------------------------===------:-::::.::...........::=----=-----==----------------:....:.........:....:.:.:-:-:-::...:...::::::::::::::::-:.:--------
------------------------------------======------------------------------------:::::::::-:::...:....:::::::--=------=-==-----------:::::......................:::::-::-.....:.:::.::::.::-:::::----------
-----------------------------------------=====------------------------------:::::::::---:::.:.::::::-::::-----==-----==---------:.::-::::..::....::.........:-:::::::::......::::::.::::::--------------
---------------------------------------------------------------------------=-::-------::::::::.:::::--=:-----=------------------.:.::--::::::::::--::......:-:-::::::..:......::::..::.:::--------------
---------------------------------------------------------------------------=--==-:----::--:::.-:::::-----------=----------------::::-:---:-:::------::....:-:::::.::..........::::.:::::----------------
-----------------------------------:--------------------------------------=--::::..------::::---::::-----------------------------::------:::---------:::.:--:::.:............::..::..:------------------
-----------------------------------::---------------------------------------::-=-:---=-:-::-+==--+++----=-------==----------------:-::::-:---:-------:::---::-:..:............::..::--------------------
----------------------------------::::-------------------------------------:-=-==-..:----::-:----------=-----------------------------::-----:---:------:::.:----:::..............:----------------------
----------------------------------::::---------------------------------------=---...-:::=-==-=-::-==-----------====------------------------:::-:::-:----:.:-----:..:.:........:..::---------------------
----------------------------------::::-------------------------------------:::::::-=::-::--:.:--:--------=----==--------------------------:::::::::-----::--:::-::....:::...:::::::::::-----------------
----------------------------------::::-------------------------------------:::::.:-==-:----.::-==----------------------------------------.:::::::::--------:::::-::..:...:::::::::::::::----------------
----------------------------------:::--------------------------------------:::::...--::::-=:.-::::-----=-===-----------------------------::::::::::::::---:--::::-:::.::::::::::::::::::----------------
---------------------------------------------------------------------------:::::....:::::-----:::::---------------------------------------::::::::::::::----::::::::..::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.....::::---=----------------------------------------------:::::::::-------:::::::::.:::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.-=========------==========------------------------------------------------..:::::::::.::::::::::::::::-----------------
--------------------------------------------------------------------------:::::::================----=----------------------------------------------------:..::::::::::::::::::::::---------------------
-------------------------------------------------------------------------:::::::.=================--==----------------------------------------------------:::::::::::.::..:::.::------------------------
-------------------------------------------------------------------------:::::::.=====================-----------------------------------------------------:...:::::::.:.::::---------------------------
-------------------------------------------------------------------------:::::::.=====================------------------------------------------------------:...:......:::------------------------------
------------------------------------------------------------------------::::::::.=====================--------------------------------------------------------:.....:::---------------------------------
---------------------------------:-------------------------------------::::::::..======================-------------------------------------------------------------------------------------------------
---------------------------------:------------------------------------::::::::...======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------:::::::::...======================-------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::.::======================-------------------------------------------------------------------------------------------------
------------------------------------------------------------------------:--------======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------======================--------=====------------------------------------------:::::-------------------------------------
-------------------------------:::-----------------------------------------------======================--------=============--------------------------------------------:-------------------------------
------------------------------::::------------------------------------------===========================--------===========--===-------------------------------------------------------------------------
-----------------------------::::::---------------------------------===================================--------===============--------------------------------------------------------------------------
---------------------------::::::::---------==-------------------------=--=============================-----------------=========-------------====================================-====-------=====-----
--------------------------:::::::::--------------===========================---========================----------------------========================================================---------=---------
-------------------------::::::::::::::------------====================================================--------====================================================------===========--------------------
..+#############*##**++++++..:#+-###--##*-##*-:--**#***+++++****--...:*########*++-*#*+=-=*:.:-+#####=.....:=.:###*###################*::-++...::::::::::::::::::::::::::+#-=###########+::+-###+++*####
..:########**+++++*####**####..:###--####=-*###*=+*=-==*****###=.*-+**++++++*#*+-...--==+-:::=###########=:....:+#=####################::::=+=..:::::::::::::::::::::::::*#*+*###***++=.-=:-:===++######
..:#####++++*################+:.-#-=#######*-################++.*++=-##+-..:=*+===++++**##=:+################=......+#################*-......::::::::::++-::::::::::::::::-=++++**##+:...:--+##+++*####
....+=..-*######*+#########:=*##:.:########**+#########**++*+=:..::-++#####*-::+######-*#*-=+++********#######+..+:.....=########*++*###.........::..:::++-:::::::::::-=+++****--:=+*###:..=####++++####
.....-#####-=##-:-:*#######+:.-*-=###########*-#*+--::::-=+######:=#=-+*+=::-*##########*-*:#*******#**********+..+**=:....:=++*#######*............=::...:::::::-=+++--=###*+-=*=-:=#*-=-..+###*+++*##+
.....+#########---:*###*..+#+##=:*###-*#+-:...--##################==:-*+-:+#-##############:*#**=::=#########*++-..:++#**=:.....=######...............:...::=++++-::::*=..-*+######*.:-+##=..####++++=.*
...=##########-:-:*#+.=----*=+=....-:+=######+##=##############=-*##=-::++=:=**#*********++:==:-=+=-##***+++===+**:..=+++=-=**-.....-=:.................=++=-:::::::*####+:-#####*-+::---##..*###++:.+++
*#########+::-:*=-##-..--..:-*=:*##=##*##########=########*+=+###=#*====--=====--========-::-===+*#*+-+########****+.....:-=**--=.......=*#*++-:=+-........:::::::*########+-+*==*##**:--*#=.=##*::+++++
###########=-:+#:=*:-#####-:=#####=####+######**++:+*#*--*#######*-###-:=+########*=*##**-::-+=+==*=:=+:-=#*=*########=:.......-*==++=....-++=+#*:.............*####**#*+--**:-###+*#*:--*##..#.-*++++++
#########==#:+#+::-*########=####=##==+-*########+--*##########+=###+:-*###########+:::::=#=###*+--*##*=+:+:+#########=...=*#########*++=-......:+*=............=*+**###*#==##*-=####*::*###-.-####*++*#
###########-+##--*##########=###=*=####+*###*+=+###+#########+=##*=-=**==*######*-:-++==:::-*#*--**+*####=....:+#################*++*=-*#####*-.....-+...........#######+*#***##=-*##---##=.=.:#########
##########*:#=::+###########=##=#+######-:-#########*######=+##+-==*##*==#####+::+##*-###-::=-:-*######*........-############*++*##*:*########****-.............=####=.-.....:=....=#--*=.###..*########
##########+-:=+-####-:######=#+##+**==+#=*###########+###-=#*====-+#####-**+-:-*###=*#####*::-###*++###-.........*######**+*+=###*-+####***##########*=........+=-::*#######+....:......*###-=.+########
##########--*#-+###*+++++**#+++*+-+=####+#############+-+####====*######*-:-**+*#*=###**+#-:-::*#####+=-..........+#**+**#++####+-##***-*#**##############=.....::+###*###*........:.....-##....########
########=::*#*:*#####*=++###=.+##+-#####*############:*+####*==-+########-::.###+=+#+*###=:+#=::*#######.::.....:++*####=*#####-=#+################++#+######*:......+###=...........:-....#*...=#######
**####*:=*:##=-#######*:=-=***###########+########+-*###+###+===##########=:+##==*=**+**-=-*##*::=#####-....-=+=:.-###++#####*-+*############....:####+####-=+####+:....................:..:#-...#######
##*##--##*-##:+#######=-++###+###########+######=:+######+##*==############-:+-+=*###=:-===#####-:-###=-=++=:...-=*=++######=+##############+.....=##+**+:=*#+########+:..................:.*#...+=--+##
###=:*###+-#+:######:=+#*:-##=###########=####-:+#########+#*==############=::::+::==++:+*##++-*#=::-++=:=#####=###*--####=:#######+######*+#:.....=##=+=*###*-#########=..................:*#-..:=--*##
#*:=##*##==#-+####*:-*####=:+=*##########*+*-:*############*+==###########*+-----:::::=#*####*--=++=-:+#######+-*#####+==-=##########*++*######....=-*#######*-*==-=+###+...................=*#=..--=*+=
=:*####**==*:####*.=#######*::=##########*:-*###############-=-*#########=:+-::::::::*##+###*++==--=-::::::###:-=####**=:*#==*####*+##*#########+==##+*######+=#####==+.=:.................==-=+..---+*#
-*#######**=-###*.=##########=:-:-+**-::-=+#################+==*#######+=:*-::::::::-##**++**::---:+:::::::=####=+*+*=:-#+=####--######.+#####*:#*--*########+*+####+.*+-+....................+*=.:-+###
#*=######==+*###-+############*=-:::::-+*#+##################==-::-=+**=####++#*+==**+*+#####+--+::-#*:**=:::::::::-:::===+:=-=+*-.-+##=####===-+###########*+#+##=.*###.-+:............:#*-.....----+##
###++####=::#**################*##########**#################*-=+####+##########*++*###+####*-*##############**=-:::+++*+-+=*-+=-:.....-+-..:+########+:-###++#*:.####-.+:::.........:+#######*..:.-.::.
.####-###=:+###*+::-+*#########*###########+##################+=-+#=+#######*+*#*+*####*###+-*###############+**=#####*=#+####+.####*:....=-*#:*#:#-*-:*####++:-++-::.::::-*#:...:##*=#########=-#+-....
.=####+=#=:*##*::=+-:::::--+*##+###########=###########==*#####==*=####**+****+*######*###+=###############**###::+##=*+#####:##+=##+-*#:...+*=-.*##.+##**=-..::::::::-=+*###*+###*=**=#######*=.#==-::.
#.####*#=--:+#*::::-+=:::::::::::-+*#######+############*######*-+##*++++*#**#########*##==##############**#####-:+=*+*###+=+####*::#####=#:..*##+-:-:-=+=.=*###=+*##################=*=#####*+#=+==*:::
#+.######=:=:*##=:::-==*=:::::::::::::::-=*+*#################*-=++*####*+############+#==#############**#######=*-*+##=*######-:###+-####=*=...+-+#*-=-.*#**##+::=###################*-=##**+*##.==##=+
##=:#####=*-:-#######**=-=+=-:::::::::::::::.::-=+*##########=+#*-*##***##############+==############**#########=++#*=######+:+####*+=----*##---..*##.:*#*===+=-:=######################+=**+*###+-+*+=:
###.-####=###############*+**+*+====--::::::.:::::::::-=**#*-####=++*################**#############+##########=+*#=#####*--*+===*######+=*==*###=..:=+##*--::-==:#**########*######***##++-+##**+++=..:
####.+###=#################*++**++##***++***+++++*****-:::::::-*++=##################+###########*+###########-+*++##*=-:+############+:########*.......*#+*+#**+++++*******#**+****+++++++++++*---::::.
####*.###+######*########+*#####*+*++*####**+---=****+::::::-=-:::=--=+*#############+#########**###########*:===-**+==*#########*+=====+++***=.+####..:*+++**+=##+####******###########**#=*#+----.::::
#####*.##+##############**#######=####**#####=####*=-::::-==::::::--::::::::-+*######+######**########*+=-=+=###.=+-+#####=+--=*############=.*####*++=...#+:::==-:-=*#################=####==-::--:.:::
######+.*+#############+*+*######=#######+####=#######-+**+=:.:::::=-::::::::::::::-=+###*+###*+==+*######=*##.=+-####+:+#################-.##*+*#####*-*...*+**###*###*+=--+#####*##*.###*=-:::::.:..:.
***+++:..+**********#+*##########=*#######++*#**####**######+###*+=-=:::::::::::::::-::::--:=*###########-+*-:-+##+=+###################-:++*#######**+=-*#-..=*###=.........**=-------:--:-::::::.::..:
########=.#########*+#****+++++++++****###:=##++#**=*######=########=*##+=--:::::-:::::::::::::::-=*###==++:..##:*####################+**#+-##**+**##-::=##+#=...+...........-:--=+=#+::-=::::::....-..:
##:######..#######**#############*=..-#...**+++*++++++++**+*########+=##*===+***=-:::::::::::::::::=:::::--+.+-*##################*+:+#**+**#######-::+==##+####-........-......##*=*######+::.::..:::::
#########=.:######################=*..:=-.:+:.:**=+**##+=#####**+==+++++***********#+*+=--:::::::::::.:::::..::--+*#########**#*++=+**##*++=-::::::::+**:##+##=+.....:..........=##**..............:::..
**########-..###################*++=....***-:.....*#*#**#*+=-=*#####*==######***++++++++++++++++++==-=--..-::::::::::::-+**++++-.-+--:::....*=::::+#*=::..++#....::......................:+#=:---.:::::.
***#########:.#########***+++**#...-##########:*+....+**#**##########*=*#######*###*#######*-:------=.:+++++++++++===--::=+-:..:-***###**#*-:::::=#####*=+=::::-:...............*############::.:.::::::
***#########*..*###**++**###++-..:=*######*+=-+-*##+..=#####**########==#######**##+#####+:.:::::...::=*.-:.::::::::::-+=::..::::::::-=--::::::=######*#+=*--=:.:..............=##+*########*#:...:::.::
**####=.#####*:-+++*###...#+....##+++--+*##+-########+..-######*+#####*-*#########*++++-::::::::..::###::##########+=+:::..::::::::::::::-==-:::::::-++*-:++####:.............####*#########=*.+.::.::::
+###########*+*:..#####-.==...:+**+*######-+##**#######*-.=########==-*==##########+=::::-:-==:..+####+.#########*+*##+.+**=-::::::::::::::::-==-::::::::::-+*##*..........-*##############=#.:=+=--:::.
*########*++***##...=+=-.....#####++####*-**********######*..+######+*#+-+********=::--==-:::.:.######-=######*+*###=.=*###=:=##+-::::::::::::::::--=-:...:::::....=:::-:==--*#####**+--::.-:.**#*=*--##
#######*++*###=-=*+........#######+*###+-************########*..########=-#####+......:::::::+=+#####+.#####+*####=.#=::#*-:*######=::::::::::::::::::-=-.:::....::::::-::.::::.-*#######-##.*####=##+##
######++*######*####*=:+*#########+*##==*******+-:-=****########+..#####*=+##-::::::::::.-*=+=:######.+##*+*####-=#######--##########*--=++--::::::::...-:::-:...:+====-==-::::::.:-=*#=+##-:#####+*:::=
####*++########**#################=+#==#******-::::::***#######-:##=..*##==-.::::::::::+##=++-######+.*+*#####-=##*+-:::::-::::-------=-::=--++=:::....::.....:-==-:=-:-::-::::::::::::-*##.*#####*+:::=
##*#+*##########*###-=######**+*++++++++*****:::::::=****###**#+.:###*...-==-::::::.-###*=*.=#######++######.==++#####-:=#-+#####=:::..:::::-=*###*.+#-....::::::::.:-:-::-:::::::::::::::.-######*++=#:
##*+*############+#==**++***######*:+####***-=+++=+*****##***+##-:-##::::...=-.:.:*#***=*=.######*+*.=*++=:*######*..:::-==+**#######::-=::::-+=-::.....:.-++++==:::::::::::::::::::::::::.-=++****-.*:+
##+*##############+++***+=-::::-=+:-*#####*::::::***+++***#######:::.::::::-:..:######=::#####*+++++.+*+.=----...=++-:=############=:+##*:=###+.....-:.=-+*########-.++--::::::::::::::::.:#########-:**
#++############+++#+######*:=####--+#*+=:......:**####*##*++*=.#+::::::::::.:####*+++=####*+=:::-=*+.:-#######:.....::.....=####=:=######--###*....:=+*::++########=.+#=#*=##+:::::::::::.*#########..#=
*+##########*++#####+######+*##*-=-*#####-::::=****+==-::::-=+=++==-::...:+###*=-...-==++*#+*#####*..:######-....=*+:==:.::*#+:=#########+:*########+####*-:+#*####+.-#=#*+###*+###**+++.###+####*#:#:-:
+#########*+*########..=*#####*-+--*####+::::-+###*########+:::.....:-=++++++++++++++*##++######*::...:.=*=....*#*:::*##*=.::+############:-########+#####+#-:-*###+...:.::...:-+######-=######**#::::::
*#######++*######.+##*....................:::=***########-.::::::::::+########+=-....::+*#####*.##...........*###=:::-+-::-...#############-########+#*..-*###*:::.....::::......:.:##*.#####+*#+.::::::
######*+*###############+###*--#=:+######*--=*##*******+::::::::::-*:###########*++*######*+::-:::.........-#####::::::+####-.:#############-######**##=-=*###=..::::..:::...........::=###+*==+.:::::::
*####++*####=.:##########+#*---::-##################+*##.......:+#++:*****+++*####+-######:-######=.......=::.::--:::+#######=..*############-*####**####+##*.:....::::::::.......::::.::=####*..:::::::
+++*++###*##...=##########-:::::--###############+*######:...=######:############:+####*.+############+###############*+=:....:..=+*##########-*###**####+#-.........:::-::::.:::::::.::::==::..-:::::::
+++++#######=...########+--::--+##############*+####################:###########:####-.+################################**+**#+======---:::--=+-=##+#####*-..........:.:--::::.::.::..:::::::..+*-::::::
+++++#######*...=#######----:::*############+*######################:##########:##*..#################################+-===============#########+-=-:..:-:...........::.::::::::::::.::::::::.:*###***##
++++++#######:..=######------:::#########+*#########################:#########*::.:################################+-==================###########:+####=::..............::.:::::::..::....:.=##########
++++++########:.:####+--------:--#####*+*###########################-*#########:-################################=====================+############-*##++..............::...................:###########
++++++########*..*#+:---------:::+##+*##############################=*######*.=################################*-====================-#############+#++#-...............:....:......:...........:-=+*###
++++++#########*.++-------------::+#################################*=####*.*#################################*=====================+##############+####-................:...:..............=##########*
+++++*###+######=.:-------------::=##################################:##+:*####+.*############################=======================*#############+####=.................:.................+###########
+++++*###########..---------------=##################################==*######################################=======================*#####==-*####*####*..................:................############
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::::---------------------------------::-------------------------------------------------------------------------------------
---------------------------------------------------------------------::------------------------------------------::-------------------------------------------------------------------------------------
--------------------------------------------------------------------::----------------:::--------::--------::----::----:::------------------------------------------------------------------------------
--------------------------------------------------------------------::-----:::::::--:::-::::--:::--:::--:::--:::-::--:::-:::----------------------------------------------------------------------------
--------------------------------------------------------------------::----------::-::-----::-::-----::-::-----::-::-:::-::::----------------------------------------------------------------------------
---------------------------------------------------------------------::--------:::-::-----::-::-----::-::-----::-::-::::--------------------------------------------------------------------------------
----------------------------------------------------------------------:::::-::::----:::-::::--:::--:::--:::--:::-::--:::--:::---------------------------------------------------------------------------
--------------------------------------------------------------------------:::---------:::-------:::-------:::-::--:----::::-----------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------::----::----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------::::::-----------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------::::-:::::-:::-:-::::::::----------:-:--:::-::-:::::::::-----------------------------------------------------------------------------
----------------------------------------------------------------------------------------:---------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
********************************=**************************-+***+=-:-==**==****-*****=-=++=++=*+=--=+=**=---+=:+===++++=+-*+=-+*=+-*+=+-+**+=-*==++=+==+---++=+=****************************************
********************************=**************************==+*+=+++==**==*+**=--==-=--=-=*+=+=*+=====++-==+=-+-==***=++++++=*+===+*=+=::=+=+=-=+---===+=++-===-=***************************************
********************************=**************************=+=+====+=+===-+==-=--=-+++==+=+*+++=*+=:==-==-=:=-+=*+-=--==-=-::::--====+-++:=-=:=+==+=**+=*+-*++=+=+**************************************
********************************=***********************+-+===-++-+==+-+=+=+==++++=+=====+++*+=+=+=*--++**************===-=========--=-+=++-**:***+=**==*==+-===-+**************************************
*******************************=+*****************+===++****+++=-+====--==**+-+*+--:=++=-=++-=--=--+********************+::=======++=-++-*-+*==+*+=+*==++===+=+-==**************************************
*******************************=+*************+==+**********+-:=+-====+:=+=+=--:-=-===++==++=-===+***********************+=+=+=======+=-+==*+-+=+=+=+++==-==-=-=+==*************************************
*******************************=+**********+=+****************-::+=+==+--+===+=+:++==++++=--==-+***************************==+=+======-=+-++-=-=-++=:++-=+=++=+-+=-+**+==+******************************
*******************************=+******+==+*******************+---+===-+--=+:---=+*+=+===-==-+******************************+=+=+++++++==++=+--+**+-+*+-*+-++=+==:-==+****+=****************************
********************************=****==************************+-=:++:+=-====+====**+=+==++=**********************************+--=+=-==+*=+*+:+=**==**==+=++-==:.-**+====***=***************************
********************************=**=+***************************+++=:=+-=--::-=+===+++--===************************************=**==******++:=+++=--+=-==-=-=-+=-.::::::-+**=***************************
********************************=+=+*****************************-=-====-:---===*==+=-===+*************************************+::::::::::::-+**=::=:=+:==:+=++=--=+***+:+**=***************************
********************************+=********************************=+=-+----+==+-=++==**-+****************************************+=+=**=-=--=+*==::=**+=++=+=+-++---***-:-+=+***************************
*********************************=********************************+--:=.--+**=-====-=-=+*+=***********++-===+*********************=++=++*****=+=--+-=====:+=-===---:=++-==+=+***************************
*********************************+=********************************+==-:=+****=-+==++=*****+++***+=::-=-:+=-+---+*****************=:--:--------=-=+-======-==+--+:-:-=-+==+=****************************
*********************************+=*********************************+.:+=******=.::--+*******+=+--=+:=+=-*++***+---****************+.::.......:.=+.=-=:--++====+:.--=-:*==++****************************
**********************************=+********************************+-=-+++++++=-==-+*******+-==+**-:==::=---=----::-=**************+=++-=++++++=-:==:-=-===:+-=+=--+-.:+==+****************************
**********************************++**********************************+==+****++==+******+=-+--====--===-=*=.=++*****=-=++***********+=--=--------+=--===++-+-+=----:-=++==*****************************
**********************************+=**************************************-=+-==********=.:+****+=-+=:+==--*=-=+=***+:+*+-************+--:---------=.--=-+---+--+=--=.:++-******************************
***********************************=+***************************************++*++*****+:=------:==+=*=:+===-*=:=+=**--**:--=***********+::::::::::::-=-+.-+===-=+--=.::==-+*****************************
***********************************+-***************************************+=**=+***=::=+++++=====+=++:+=+-::+:-===:+*--*--+***********=::.::::::::--+---:-==+:-=:..:---=******************************
************************************=+**************************************+=**++**+==+*****+=++=====++.::-----:-=:-=+:*+:-=***********+--==+========+-+-=--*=-*=.:.---:=******************************
************************************+=***************************************=+**=+*=:=++++++-+-====-=:---------------:++:=::*************===-========:+-=--==-=+-:-:---.=******************************
************************************+=***************************************=+**+=+:-=+***-=+-+==+=-----------------:+=-=:::**************==-=======+=-=-=+--+-----:=::=+******************************
*************************************==***************************************=***=+=+==**-++-*-+=::------------------:-=:..:***************:----------==-+=:+=:=-==.:-+=+******************************
*************************************==***************************************=+*+=*=+*=+:+**+:+--:-----------------------:-=+**************+-===++====--*=.:=-+-=-:--:=:+******************************
*************************************=+***************************************+=+-=--=====****+--:---------------------==-:+=+***************+=*--+*****++.---=-+-:-::.:.=******************************
*************************************=*****************************************+=++=*-+***++****=----------------------==-=*=+****************...::::::::::=+====----....-******************************
*************************************=+***************************************++=+=***=+**==+++==----------------------=:.::=*****************+==+=++++++-=++=-=-:--.....=******************************
*************************************+=************************************+==*-++*****=+==++++=:--------------------:=+-.::*******************=++===*****=+-=-:+*:..-.:::******************************
**************************************=+*******************************==++****-:----------++++=---------------------=::::-=+******************+---:-------:==+-+=:.-:...:******************************
**************************************+=*********========+**********+=+*********==+****=-:::::::..------------------==+:--=**=+*****************===-===++++--*+==-::-:::-=+*****************************
***************************************+=*+==--=***+-:..:=++-=+***+-**************+=++--...........---------------=+--=++******=+****************=+-=-=++++=+*-+.---:.-:+=******************************
****************************************+=+*********+--=---+***-+=+*********************+:........-------------:-===:=-+*********+=**************=+==+******+=-:=+-+..===+******************************
***************************************++*****++===========:.::==*************************=:.......--==-:----=--=-:===**********+++==========+++++*-:==============--.::=*******************************
**************************************+=**++-:=:=========:.-+**=+*************************+++:::::::::::==-:=:=:.==++=-======***********************+=+++++++--==+-+-==*********************************
**************************************+:..:=++=+++---::-++****+-***************************+**+=+*+------:---:-:+***********************************=+*=+***=---:=-+-==*********************************
**************************************+.-+***=+**+==+********=+****************************=+****-+****++*==-+************************************++****=+=-++=++-::-:**********************************
**************************************+=***+=+==+*********+=********************************=+***+=*****+=++************************************+=*******+++:++-===.:=+*********************************
****************************************+=-++*********++=+**********************************+=**+=++++++++************************************+=+***********+-==+:+-=***********************************
******************************************+===========***************************************==+=********************************************=+**************=--==+*************************************
*******************************************=**************************************************==******************************************+=+****************=+==+**************************************
*******************************************+=************************************************+-++=+*************************************+=+*****************+=+==+**************************************
********************************************=+***********************************************=******===+*****************************+=+********************+++==***************************************
********************************************++**********************************************++**********++-=+********************+==+***********************=**=++**************************************
********************************************+-*********************************************+=*****************++===============++**************************++**+==**************************************
*********************************************=+*******************************************+=**************************************************************+=****==**************************************
**********************************************=*******************************************=***************************************************************=+****==+*************************************
**********************************************+=*********************++******************=+**************************************************************+=****+==+*************************************
***********************************************=+******************++==*****************=+**************************************************************+=*****+=+=*************************************
************************************************=+****************++*=*****************=+***************************************************************=+*****+=+=*************************************
*************************************************=+***************=*++****************=+***************************************************************=+******=*+=*************************************
**************************************************=+**************=*+****************+=***+=-+********************************************************+=*******=**=+************************************
***************************************************=**************+=*****************-+*==+***********************************************************=+******+=**=+************************************
****************************************************=+*************+=***************+=+=*************************************************************=+*******+=**++************************************
*****************************************************=+**************==++*********+==+=+************************************************************++********++**+=************************************
******************************************************=+****************+++++++=++***+=************************************************************+=*********++**+-************************************
*******************************************************=+****************************-+***********************************************************+=**********-***+-+***********************************
********************************************************=+**************************++************************************************************=**********=+****-+***********************************
*********************************************************+=*************************=************************************************************=**********+=****++-***********************************
**********************************************************++***********************=+***********************************************************=+**********++**+=**=+**********************************
***********************************************************+=*********************+=**++===+++*************************************************=+***********=*+=+***++**********************************
*************************************************************=**************+=====-===+*******++++++===========*******************************=+***********===******+=**********************************
**************************************************************=+*********+=+*****+=*************+++======+++*=+******************************=+*******++=+***********=+*********************************
***************************************************************++******==********=+*****++===++++**********=+*******************************=+*****==+****************=+********************************
.......................................................::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::::::::..............................................................
......................................................::::::::::::::::::::::::::::::::::::::::::::---====================---::::::::::::::::............................................................
....................................................::::::::::::::::::::::::::::::::::::::::--========+++++++++++++==============--::::::::::::.........................................................
...................................................::::::::::::::::::::::::::::::::::.:-=====+++++++++++++++++++++++++++++++==+======---:::::::::.......................................................
..................................................::::::::::::::::::::::::::::::::::-====++++++++***********************+++++++++++=======--::::::::....................................................
................................................::::::::::::::::::::::::::::::.:-=====+++++++***********************************++++++++======-:::::::..................................................
...............................................::::::::::::::::::::::::::::::-=====++++++*******************************************++++++++=====-:::::::...............................................
..............................................:::::::::::::::::::::::::::::-=====++++++++**********************************************++++++++=====-::::::.............................................
.............................................::::::::::::::::::::::::::::======++++++**************#*****************#**#**#***************+++++++====-::::::...........................................
............................................::::::::::::::::::::::::::-=====++++++**********#####***#*****#******#**##***#**#******************+++++====--::::::........................................
.........................................:..:::::::::::::::::::::::::-=====+++++++******#****##*****#####***************#**#**********************++++=====::::::::.....................................
.........................................::::::::::::::::::::::::::-=====+++++********#**#****#*****+*****#**#**************************************+++++===-::::::::...................................
.......................................:::::::::::::::::::::::::::-=====+++++++******+*#*****+*******************************************************+++++====-::::::::.................................
......................................::::::::::::::::::::::::::---===+++++++++++*#***+*#**********************************************#***************+++++===--:::::::::..............................
.....................................::::::::::::::::::::::::::---===+++++++++***++#***+**********************###**********************+*##**************++++===---:::::::::............................
....................................::::::::::::::::::::::::::----===+++++++++=*#*********************#***#***#**##**#***#********************************++++====--:::::::::::.........................
...................................::::::::::::::::::::::::::---====+++=+**#*+*==++************#******#***#***#**#***#**##**********************************++++==---::::::::::::.......................
.................................:::::::::::::::::::::::::::-----=======+#*=+#*+++++++++++*****#******##*****++*******###****##***************++*************++++====--:::::::::::::....................
................................:::::::::::::::::::::::::::-------=====+=+#***++++++++++++++**+*###***+***************+*******+**#***##***********************+++++==---::::::::::::::..................
...............................::::::::::::::::::::::::::::------===+*+=+=--=+++++++++++++++++*+=++********************************##***************************++++==---::::::::::::::::...............
..............................:::::::::::::::::::::::::::--------==+*****+==+==+++++*+++==++++++++++++++*****************************+****#**********************++++===--:::::::::::::::::.............
............................::::::::::::::::::::::::::::::--------=--=++*+=====+++****++=++++++++++++++++********************************#************************++++===--:::::::::::::::::::..........
...........................::::::::::::::::::::::::::::::::--------==-:==========-***++#*++=++++++++++++**+++***************************#*************************++++===---::::::::::::::::::::........
..........................:::::::::::::::::::::::::::::::-::-------------========+=-*#*+++====+++++++++++++++++++++********************++***************+**********+++++==--:::::::::::::::::::::::.....
........................:::::::::::::::::::::::::::::::::::---------------==========-=============++++++++++++++++++++***********************#**********************++++==---::::::::::::::::::::::::...
.......................::::::::::::::::::::::::::::::::::::-----------------=**+==**==================+++++++++++++++++*********************************************++++===---:::::::::::::::::::::::::.
......................::::::::::::::::::::::::::::::::::::----=-------------=-:=##+==========-===========++++++++++++++***+*****************+***********************+++++===---:::::::::::::::::::::::::
.....................:::::::::::::::::::::::::::::::::::::---=***+=---------------=============**==========++++++++++++++*+*****************************************++++====---:::::::::::::::::::::::::
...................:::::::::::::::::::::::::::::::::::::::--=++**+=------------------===+======:============++==++++++++++++*********+*****************************++++++===---:::::::::::::::::::::::::
..................::::::::::::::::::::::::::::::::::::::::::=***++-------------------==**++=+=-===================++++++++++++++****+*+*********#***#********+******++++====---:::::::::::::::::::::::::
.................:::::::::::::::::::::::::::::::::::::::::--:--:-=--------------------=***+**=-----================+++=+++++++++++++++++********+*******************++++====----::::::::::::::::::::::::
................::::::::::::::::::::::::::::::::::::::::::-+**+=---------------:---------+**=----------===============++++++++++++++++++++**+*****************++**+++++++===----::::::::::::::::::::::::
..............::::::::::::::::::::::::::::::::::::::::::::::::-++------=*+***=------=****=--=--------------===========++++++++++++++++++++++++************++*******#*+++====----::::::::::::::::::::::::
.............:::::::::::::::::::::::::::::::::::::::::::::=*+++*=-----:-**+=*=------++--=*=----------------=============+++++===+++++++++++++++**++*******++++++++++++++====-----:::::::::::::::::::::::
...........:::::::::::::::::::::::::::::::::::::::::::::::::::--::::::--::-------:--+***+*=----------------==-=====================+++++++++++++*+**=+**+++++++++++++++=====----::::::::::::::::::::::::
..........:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--==:-::-----:--=------------------=========================++++++++++++++++*+*++++++++******+=====----::::::::::::::::::::::::
........::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-****+---:::-+***+=---:::::--------------===------==============+==+++++++++++++++++++++++***+**+====----:::::::::::::::::::::::::
....:.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-+**=-:::-:::::=*=--:::::::::------------------------===============+==++=+++++++=+=+++=+=-++======-----::::::::::::::::::::::::
...:-:::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::-+**+*+--::::::::::::::--------------------------==================++==========++=======------::::::::::::::::::::::::
..::-:::-::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::++*-:::::::::::::--:::::::::::::::-----:::::-::---------------=============+=======================-------:::::::::::::::::::::::
:-:-:::::::-:....:::::::::::::::::::::::::::::::::::::::::+=-::-:::::::+=++==-:::::::-=+*-::::::::::::::::::-::::::::::----------------=======+=++*+===================---------::::::::::::::::::::::::
:::::::::::::-:.....::::::::::::::::::::::::::::::::::::::=+====-::::::---:::::::::-+*+++-:::::::::::::::::::::::::::---------------------=======**+***+=================------:::::::::::::::::::::::::
.:-:::::==-::::-::....::::::::::::::::::::::::::::::::::::-=-:::::::::::::::::::::::::-----::::::::::::::::::::::::::---------------------=======**+=+*+==================-----:::::::::::::::::::::::::
...:-::::::::::-::-:.....::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::-=-:::::::::::::::::::::::::::----:-::-------------=====-=+*++=======+***=-==---------:::::::::::::::::::::::::
......:-::::::::::::-::....::::::::::::::::::::::::::::::::-=-==+-::::::::::::::::::::=++=-:::::::::::::::::::::::::::::::::::::::-::---------=**+===========+*=-=*+-----------:::::::::::::::::::::::::
........::::::::==:::::-:....:::::::::::::::::::::::::::::::+==-+-::::::::::::::::::::-:=+--=::::::::::::::::::::::::::::::::::::::::::------=*+=***+========-+==**=-----------:::::::::::::::::::::::::
...........:-:::::::::::::-:....:::::::::::::::::::::::::::...::::::::::::::::--:::::::--++=::::::::::::::::::::::::::::::::::::::::::::------=-+++*===---==*=--------------::::::::::::::::::::::::::::
.............::::::::--:::::-:....:::::::::::::::::::::::::::::::==::::::::::-:==:::::::-::::===::::::::::::::::::::::::::::::::::::::::::-:------+=--=--==--+**+=----------::::::::::::::::::::::::::::
...............::-::::::::::::-::....::::::::::::::::::::::::-=-=:=-:::::::+-===+-::::::::-=::-+=:::::::::::::::::::::::::::::::::::::::--:::-----------==++=++-=+=-------::::::::::::::::::::::::::::::
..................:-:::::-+-:::::-:....:::::::::::::::::::::::====-:::::::::+=-::::::::::::+=-=+=:::::::::::::::::::::::::::::::::::::-::--:---:----------:=***====------:::::::::::::::::::::::::::::::
....................::-::::::-::-::-::....::::::::::::::::::::::.::::::::::::::::=+-::::::::-=-::::::::::::::::::::::::::::::::::::::=+*+------:-------=+=-=-:===-------::::::::::::::::::::::::::::::::
.......................::-::-:::::::::-:....::::::::::::::::::::::::::::::::::-=+==+=::::::::::::::::::::::::::::::::::::::::::::--::=*+++=-----------==+*+--=-==-----::::::::::::::::::::::::::::::::::
..........................:-:-:--::::::::-:....:::::::::::::::::::::::::::::::.:::==+=:::::::::::::::::::-+++-::::::::::::::::=+*++--::==++------------+****=-----------::::::::::::::::::::::::::::::::
............................:-:::--::::-:::-:.....:::::::::::::::::::::::::::::::-=-:::-=::::::::::::::::-=-=-::=+:==::=+--+-::-=+++:--:-----------=+=---:-=-------=++=--::::::::::::::::::::::::::::::.
...............................:-:-:-::::::::-::....::::::::::::::::::::::::::::::::::==-:::::::::::::::-=-==:::=+++=:::=+++=:::--=+=-::::-:--::--*+=+*=----------=*=-++=-::::::::::::::::::::::::::::..
.................................:-:::--::::-:::-:.....::::::::::::::::::-=::.::::::-+=:::-=::::::::::::::-=-::-+=-+=:::+=-=+-:::-::::::::::--:-:-++=:=*+--------:----::--:::::::::::::::::::::::::::...
...................................::-:::-:::::-::-::....:::::::::::::-:=--=::::::::::::::==+=-::::::::::::::::::--=-::::----:::::::::::::::-++*=::=*+---------------::::::::::::::::::::::::::::::.....
......................................:::::--::::::::-:.....:::::::::::---:::::::::::::::-==:::::::::::::::::::::::::::::::::::::::::::::::-++-=*=-::---------=-----==::::::::::::::::::::::::::::......
........................................::-:-:-:::::::::::.....:::::::::::::::-=:::::::::::::::::::-=::::::::::::::::::::::::::::::::-=+++-:-+=-=*+-----:---=*+*=:::-=:::::::::::::::::::::::::::.......
...........................................:-:-+--::::-:::::.....:::::::::---=-:::::::::::::-==::::==-:=-::::::::::::::::::::::::::::---=++-:-=+=---:-------+==+++=:::::::::::::::::::::::::::::........
.............................................::::-:-::::::::-::....::::::::-=-::::--::::::::::::::-=-==-::::::::::=-:::====::::::::::::--=+=:::::---:--:-+=-::-===-:::::::::::::::::::::::::::..........
................................................:-:::--::::-:::-:.....:::::::-::::::==:::::::::::::::-=:::::::::::==:::::-==::::::::::::=-:::::::::::-==--+=-::--::::::::::::::::::::::::::::...........
..................................................::-::--::::::::-::....::::::::-:-==:::::::::::::::::::::::::::--==::::--==::::::::::::::::::::::::::=++++++-::::::::::::::::::::::::::::::............
.....................................................:-:::--::::-:::-:.....::::.:---:::::--::::::::::::::::::::::--==-::===-::::::::::::::::::::::=+=-:-+=::--::::::::::::::::::::::::::::..............
*******************************====++====-:::..:--====+++======+++++++++++++++*++*+===--===++++++++++++++++++++++++++++========-=====+=---==------===++++++++++++++++++++*++++++++++++*#################
******************************+====++====-:::..:-====++++=======++++++++++++++++++*++=-===++++++++++++++++++++++++++++++=========-===+=---==------===+++++++++++++++++++++**++++++++++*#################
******************************+====++===--:::.::-====+++++========++++++++++++++++**+=-===++++++++++++++++++++++++++++++========--===+=---==------==++++++++++++++++++++++++++++++++++*****#**********#*
*****************************+==========-::::.:--===++++++==========++++++++++++++**+=====+++++++++++++++++++++++++++++========---====----==------==+++++++++++++++++++++++++++++++++++*****************
****************************+=====+=====-::::.:-===+++++++++========++++++++++++++*+++==++++++++++++++++++++++++++++++++======---=-==----===--::--==+++++++++++++++++++++++++++++++++++************+++++
****************************+===+++====-::::.:--===++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++++++=======--==----===-:::-===++++++++++++++++**++*****++++++++++********+++++++++
***************************+===++======-::::::--===+++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++++++======--==---====--:---==++++++++++++++++*****++***++++++++++++++++++++++++++
**************************+====+======-::::.::-===+++++++++++++++====++++++++++++++++++++++++++++++++++++++++++++++++++++========--=-:--====------==+++++++++++++++****++++++*++++++++++++++++++++++++++
**************************+===========-::::::--==+++++++++++++++++====+++++++++++++++++++++++++++++++++++++++++++++++++++===========-:--===-------==+++++++++++++++************+++++++++++++++++++++++++
*************************+===========--::::::-===++++++++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++==========---====--------==+++++++++++++************++++++++++++++++++++++++++
************************+============-:::::.:-==+++++++++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++==========---===---------==++++++++++++**********+++++++++++++++++++++++++++++
+***********************+===========-:::::..:===++++++++++++++++++========+++++++++++++++++++++++++++++++++++++++++===+==================-------======+++++++++*********++++++++++++++++++++++++++++++++
***********************+============-::::..:-===++++++++++++++++++++=======++++++++++++++++++++++++++++++++++=+++=====+=================-::--=========+++++++++******+++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++==--=+=====-::::..:-====+++++++++++++++++++++======+++++++++++++++++++++++++++=+++++++++++++++==+==============--:::--===========+++++++*+++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++==-::-=====-::....:-====+++++++++++++++++++++++=======++++++++++++++****+++++++++++++++=++++++=+++==========------::.::--==--==++===+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++=---=======-:...:-=====++++++++++++++++++++++++++++====+++++++++*****************++++++++++++++================----:...:--============+++++++++++++++++++++++++++++++++++++++++++
**********************+--========-::..:-=====++++++++++++++++++++++++++++++++===+++**********************++++++++++++++==================--:..::-----=====++++++++++++++++++++++++++++++++++=====+++++++
******+***++*********+=--=======-::..:-===++++++++++++++++++++++++++++++++++++++***************************++====++++++===++==============--:...::----==++++++++++=++++++++++++++++++++++++=====++++++++
+++++++++++++*++++++++=-=======-::..:-==+++++++++++++++++++++++++++++++++++++*********************************+++====+====+++++++==========--::..:-==+++++++++++++++++++++++++++++++++++++=====+++++++++
+++++++++++++++++++++++++=====--:..:-==+++++++++++++++++++++++++++++++++++++**************************************+++++++++++=++++==========--:--=+++++++=++=+++++===+=+++++++++++++++++======++++++++++
+++++++++++++++++++++++++**++==-:..-===+++++++++++++++++++++++++++++++++++***********************************************+++++=+==============++=+++++======+========+++++++++++++++++=======+++++++++++
+++++++++++++++===++=---======+++=--===+++++++++++++++++++++++++++++++++******+=++******************************************++=============++==++++=+++======================++++++++=======++++++++++++
+++++++++++++++++++===---------==+========+++++++++++++++++++++++++++++*****+-...=**************************+****************+===========++==++++++++++====================================+++++++++++++
++++++++++++++++++++++++======-::-==++++====++++++++++++++++++++++++++******+:..:+***********************+=:.:=***************+=======+=====++++++++=====================================+++++++++++++++
++++++++++++++++++++++++++++++===----==++==+===++++++++++++++++++++++********+==*************************+-....+**************+=============++++++======================================++++++++++++++++
====++++++++++++++++++++++++++++++++========++++=======+++++++=+==++************************=**************+--+****************+===========+=++++=======================================++++++++++++++++
=====++++++++++++++++++++++++++++++++++++============+*****+++====+************************+=***********************************+============+++======================================++++++++++++++++++
========++===+++++++++++++++++++++++++++++++++===++***********+===+*********************++++==+*********************************+=========++++++======================================++++++++++++++++++
===============++++++++++=+===++++++++++++++++++***************+==**************************************************************+=======+++++++++====================================+++++++++++++++++++
===================++++==++===++++++++++++++++*******************+***************************************************************======++++++=======================================++++++++++++++++++++
====================+=+==+++====+++++++++++++***********************************************************************************++====++++++========================================++++++++++++++++++++
===========================++++++++========+***********************************************************************************++====+===+===+====================================++++++++++++++++++++++
=============================++++++==+++==+************************++*******************************************************+++++====+==+++=======================================++++++++++++++++++++++
=================================++==++===+************************++++++++++*++************************************++++++++++++====++===+++=============================-========++++++++++++++++++++++
=====================================++===+*************************++++++++++++********************+*********++++++++++++++++=========+=============================-=---========++++++++++++++++++++++
=================================+=++++===+++************************+++++++++++++++++++*++++*******+*++++++++++++++++++++++=====================================---------=======+++++++++++++++++++++++
===========================================+++++**********************+++++++++++++++++++++++++++++++++++++++++++++++++++===---==================================--------======+++++++++++++++++++++++++
=============================================+++++++++*+**************++==++++++++++++++++++++++++++++++++++++++++++++====--:-=================================---------======++++++++++++++++++++++++++
===============================================++++++++++*************++++*******************+++++++++++++++++++++++====-::--=================================---------=======++++++++++++++++++++++++++
===--========================================--====++++++++++***+********************************++++++++++++++++===--:..:--================================-----------=====+++++++++++++++*************
=====--=======================================--:--===+++++++++++**************************************+++++++==--:....:---================================-----------=====++++++++*********************
+=====--=-======================================-::..:-=====+++++***********************************************++==------================================-----------======+++++*********#***#**#*#***#*
++++====---======================================---::..::--=++*********************************************************+++==============================------------=====+++*******************##***#**
***+++====--=======================================---:::...=****************************************************************++========================-----------:-===+++**************##******##******
*******++==---=-====================================----:-=*********************************************************************++=====================-------------==+*************************##******
***********+=----==================================-----=**************************************************************************++================--------------=++******************#*******##******
*************+===-===============================-=---=+******************************************************++**********************++============-----------:--=+*****************************#******
****************==================================---=*********************************************************++************************+======------------::::-=**********************#*********#*****
*****************+==---===========================--+***********************************************************+**************************+==-------------:::--=***********************#***************
******************+=---====-==================-==-=+***************************************************************************************+++=-----------:-:--=+*********************#********#********
********************+=------================----=+***************************************************************+++************************+++=---------::::-=********************#******##************
*********************+=-------============------+*****************************************************************+++*************+++++++++++++=-::::--:::::-=***************#*******#******************
***********************=-----------====-------=+******************************************************************+++*************++++++++++++===:::::::::::=+***************#*********#**********#*****
************************+=-------------------=+***************************************************************+**++++++**********++++++++++++===-::::::::::-+*****************#***#**#******************
***************************+=---------------=+**************************************************************++++++++++++++***++++++++++++======-:.:.::::::-++****************#********#*****************
*****************************=-------------=+++***************************************************************+++++++==+++++++++++++++++=====--:....::::::=++*******************************************
******************************+=----::-::-=++******************************************************************++++++=-=+++++++++++++======---.........::-+*********************************************
********************************+=-:::::-=++++***************************************************************++++++++=-:=++++++========----::...........:=*******************************#**************
***********************************=-:::-++++***************************************************************+++++++++=-..-===========---::.............:=+**********************************************
***************#*********************+===++++*************************************************************+++++++++++=-...:-==-=----::................:-+***********************************************
****************************************+++**************************************************************+++++++++++==-......::::....................:=++***********************************************
**************************************************************************+******************************++++++++++===:..............................-**************************************************
*************************************************************************+++*************************+**++*+++++++===-.............................:-+**************************************************
***********************************************************************+++++************************++++++++++++++===-...........................:=+***********************#*****##*********************